使用带有布局的paintComponent

时间:2013-12-15 12:53:01

标签: java swing layout jcombobox paintcomponent

如何将paintComponent转换为我可以使用JFrame中的布局进行操作的内容?

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

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

2 个答案:

答案 0 :(得分:2)

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

示例:

答案 1 :(得分:0)

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

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