大家好,我是新手程序员
我想使用 Netbeans IDE 开发 Java 程序的 GUI
使用 Netbeans GUI 生成器,
首先,我创建一个新的 JFrame 窗体
然后,我从工具栏/调色板添加一个 JPanel
问题是,
如何覆盖新创建的 JPanel
的 paint()
函数?
我想在JPanel
中绘制一个背景和一些球体,
我尝试使用 getGraphics()
函数进行绘制,它完成了工作,但是当我调用 repaint()
我是否应该创建一个新类来实现 JPanel
或 JComponent
,而不是使用我自定义的 paint()
函数?
(如果是这样,我该如何使用 Netbeans GUI Builder 来实现?)
类似问题:
(但它不使用 Netbeans GUI Builder)
最佳答案
通常的做法是创建您自己的 JPanel
子类(例如 MyJPanel
)并在那里实现 paint()
方法。
实现该类后,切换到表单,选择面板,然后使用面板属性的“代码”选项卡中的“自定义创建代码”来创建 MyJPanel
的实例JPanel
这有一个小缺点,即每次您想要访问在 MyJPanel
中定义但不在 中定义的方法时,都需要将实例变量转换为
。如果您永远不需要这样做,这是最快的方法。MyJPanel
>J面板
如果您想访问面板类中的其他方法(无需每次都转换实例变量),删除现有的 JPanel 并使用新类添加“Bean”会更容易。
这是通过单击调色板中的“选择 Bean”按钮完成的:
单击确定后,您可以将面板放置在表单上,NetBeans 将创建类型为 MyJPanel
(而不是 JPane)的实例变量,您可以访问该类中定义的所有方法。 请注意,必须先编译该类,然后才能以这种方式添加它!
关于Java Netbeans 覆盖 JPanel 中的 paint() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18416342/