【问题标题】:Drawing window in JFrameJFrame中的绘图窗口
【发布时间】:2012-03-08 19:38:46
【问题描述】:

我想使用 java.awt/javax.swing 在更大的窗口内有一个单独的图形窗口(以及一个单独的笛卡尔坐标平面),我画了一个 picture 来告诉你我的意思。

我不知道该怎么做,向我扔一些我可以阅读以更好地理解这一点的文献真的很棒,同时解决我的问题也很棒。

PS。我还没有真正尝试过任何东西,因为我不知道该尝试什么。

【问题讨论】:

  • 你真的应该先去 Swing 教程开始阅读。阅读 JFrames、JPanels 和 Swing 绘图。这应该会给你一些关于从哪里开始的好主意。您可以在 Java 教程中找到这些教程:The Really Big Index。投票结束这个问题对于 StackOverflow 来说过于宽泛和模棱两可。
  • 有人提到使用内部框架——坏主意。相反,只需通过覆盖其paintComponent 方法来使用JPanel 进行绘图,并使用适当的布局管理器将其放置在您的JPanel 中,仅此而已。同样,教程将向您解释所有这些。
  • 很好的描述(图表)顺便说一句。一张图片描绘一千个单词,并且该图像小于 11Kb。 :)

标签: java swing layout awt


【解决方案1】:

我建议首先下载 NetBeans,因为它是我所知道的用于 UI 设计的最简单的 IDE。

  1. 从创建应用程序的主框架开始。
  2. 添加您需要的所有按钮并将它们放置在主框架上的图片中。
  3. JPanel 添加到您的框架中,并将其命名为drawingCanvasPanel。该面板将成为绘图区域。不要忘记覆盖面板的 painComponent 方法,您将使用面板的 Graphics 绘制自定义绘图和形状。

【讨论】:

  • +1 用于 NetBeans。 @Johan:在您了解layouts 之前,不要屈服于 GUI 编辑器的魅力。
  • 听起来很简单,我会用谷歌搜索一下以了解更多信息。 @trashgod:是的,这几乎就是我要做的(使用布局)。关于 Netbeans 的建议:谢谢,但我会继续使用 Emacs,这是我习惯的方式,而且效果很好。
  • @Johan 很高兴它有帮助 :) 祝 Emacs 好运,除了使用原始布局代码(而不是 IDE 为您完成所有工作 :))之外,没有更好的方法来理解布局
【解决方案2】:

我会在左侧的JPanel 中覆盖paintComponent(),正如here 所讨论的那样。 BoxLayout 中的 JButton 中的 JPanel 可以在右侧,如 here 所示。另请参阅相关示例,LinePanel

【讨论】:

    【解决方案3】:

    您可以使用内部框架,有关如何使用它,请参阅official tutorial

    【讨论】:

    • 不,这绝对不是应该使用内部框架的情况。嵌套 JPanel 是的,但没有理由创建内部框架。
    • 他想要一个窗口在另一个窗口中,据我所知,内部框架可以做到这一点。
    • 对不起,如果您误会了,我不是在窗口内寻找窗口(我的意思是带有关闭按钮等),其他人似乎已经明白了我的意思。还是谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 2018-03-02
    • 2014-06-20
    • 2011-01-09
    • 2014-01-07
    • 2010-10-03
    • 1970-01-01
    相关资源
    最近更新 更多