在JFrame中绘制窗口

5
我希望在使用java.awt/javax.swing时,能够在一个较大的窗口中添加一个单独的图形窗口(以及单独的笛卡尔坐标平面)。我画了一张图片(链接)来说明我的意思。
我不知道该如何实现这一点。如果您可以为我提供一些相关文献以便更好地理解,那将非常棒。同时,如果能够提供解决问题的方案就更好了。
PS. 我还没有尝试过任何方法,因为我不知道该怎么做。

2
你真的应该先去学习Swing教程并开始阅读。阅读关于JFrames、JPanels以及使用Swing进行绘图的内容。这将为您提供一些很好的起点。您可以在Java教程的一部分中找到这些教程:The Really Big Index。建议关闭此问题,因为它对于StackOverflow来说过于宽泛和模糊。 - Hovercraft Full Of Eels
有人提到使用内部框架——这是个坏主意。 相反,只需通过覆盖其paintComponent方法来使用JPanel进行绘制,并使用适当的布局管理器将其放置在您的JPanel中,就可以了。再次强调,教程会向您解释所有这些。 - Hovercraft Full Of Eels
顺便说一下,这个图示非常好。一张图片胜过千言万语,而且这张图片大小不到11Kb。 :) - Andrew Thompson
3个回答

4

我建议您从下载NetBeans开始,因为这是我知道的最容易用于UI设计的IDE。

  1. 首先创建应用程序的主框架。
  2. 添加所有所需的按钮,并将它们定位在主框架上与您的图片相同的位置。
  3. 向您的框架添加一个JPanel,并将其命名为drawingCanvasPanel之类的名称。此面板将成为绘图区域。不要忘记覆盖Panel的painComponent方法,在其中使用面板的Graphics绘制自定义绘图和形状。

3
支持NetBeans。@Johan:在理解布局之前,不要沉迷于GUI编辑器的诱惑。 - trashgod
听起来很简单,我会在谷歌上搜索一下以了解更多信息。@trashgod: 是的,那基本上就是我要做的事情(使用布局)。关于Netbeans的建议:谢谢,但我会继续使用Emacs,因为我习惯了它,而且它已经足够好用了。 - Johan
@Johan 很高兴能帮到你 :) 祝你在 Emacs 上好运,除了玩弄原始布局代码(而不是让 IDE 为你完成所有工作 :)),没有更好的理解布局的方法了。 - GETah

4

此处所讨论,我会覆盖左侧的JPanel中的paintComponent()。右侧可以放置一个BoxLayout中的JButtonJPanel,如此处所示。还请参见相关示例,LinePanel


-1

您可以使用内部框架,如何使用请参见官方教程


不,这绝对不是应该使用内部框架的情况。嵌套的JPanels可以,但没有理由创建内部框架。 - Hovercraft Full Of Eels
他想在另一个窗口内部放置一个窗口,据我所知,内部框架可以实现这一点。 - Demetrio Neto
抱歉如果你误解了,我并不是在寻找一个窗口内的窗口(我的意思是带有关闭按钮等),其他人似乎已经理解了我的意思。无论如何还是谢谢! - Johan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接