【问题标题】:Using a paintComponent with layout使用带有布局的paintComponent
【发布时间】:2013-12-15 21:15:42
【问题描述】:

如何将paintComponent 转换为可以通过JFrame 中的布局进行操作的东西?

所以,我遇到了一个问题。我还没有真正被教导(也没有书本)如何在我的课程中使用布局/GUI 的东西。

我的问题是:我有一个用户输入数字的程序。根据这个数字,程序计算一个圆并用一个内部有一个 for 循环的paintComponent 方法将它画出来。绘制圆圈的“像素”实际上是fillRect 方法。我正在使用的当前获取用户输入的方法是JOptionPaneshowInputDialog。这很好,但我希望用户能够从一组预定义的数字中进行选择。有人建议我使用JComboBox,但我不知道如何将paintComponent 转换为布局管理器可用的东西(据我所知,JComboBox 必须使用) )。我知道paintComponent(805 像素 x 805 像素)的尺寸,并且不会发生变化。如果我能在这方面得到一些帮助,我相信我可以自己使用布局管理器。

【问题讨论】:

  • 您可以访问互联网吗?我听说那里的信息比书籍多得多。
  • @AndrewThompson 抱歉,刚醒。如何将paintComponent 转换为我可以通过JFrame 中的布局操作的东西?
  • 问题是它的地方。我已经进行了编辑,因此我们可以删除这些噪音。
  • @Kayaman 肯定有!我这么说是因为不可避免地有人会告诉我读一本书或搜索。其中一个我已经完成了,另一个不是一个选项...... :)
  • I haven't really been taught (and don't have access to a book) how to use layouts/GUI stuff in my courses yet. - 以Swing Tutorial开头。

标签: java swing layout jcombobox paintcomponent


【解决方案1】:

另一种绘画方式(除了自定义绘画)是绘画到BufferedImage。然后可以在JLabel 中显示图像。

例子:

【讨论】:

  • 我该怎么做呢?你有没有机会把我链接到一个资源?
  • 显然,您编辑后我没有刷新。搞定了,谢谢:)
【解决方案2】:

你不知道paintComponent 的维度,因为它是一个方法,而方法没有维度。您可能知道JPanelJFrame 或任何您的组件的尺寸。

您应该将进行绘画的面板与包含您决定放入的任何组合框或其他输入的不同面板分开。这样您就可以保持绘画面板不变,并且它们不会干扰彼此。您需要在 LayoutManagers 上搜索教程。

【讨论】:

  • 你知道这个矩形包括。脏区
猜你喜欢
  • 2013-02-09
  • 1970-01-01
  • 1970-01-01
  • 2015-01-16
  • 1970-01-01
  • 2011-12-29
  • 1970-01-01
  • 2015-12-04
  • 1970-01-01
相关资源
最近更新 更多