嗨,我是个新手程序员
我想使用Netbeans开发Java程序的GUI
使用Netbeans GUI Builder,
首先,我创建了一个新的JFrame表单
然后,我从工具栏/调色板中添加一个JPanel
问题是,
如何覆盖新创建的paint()函数?
我想在JPanel里面画一个背景和一些球体,
我尝试使用getGraphics()函数来绘制和绘制,它完成了任务,但是当我调用repaint()时,它就不再绘图了。
我应该用我的自定义JPanel函数来创建一个实现JComponent或paint()的新类吗?
(如果是这样,我如何使用Netbeans生成器?)
类似的问题:
(但它不使用Netbeans生成器)
发布于 2013-08-24 09:04:18
通常的方法是创建您自己的JPanel子类(例如MyJPanel),并在那里实现paint()方法。
实现该类后,切换到窗体,选择面板,然后在面板属性的“代码”选项卡中使用“自定义创建代码”来创建MyJPanel实例而不是JPanel实例

这有一个轻微的缺点,即每次您想要访问在MyJPanel中定义的MyJPanel中定义的方法时,都需要将实例变量转换为JPanel。如果您不需要这样做,这是最快的方法。
如果希望访问面板类中的其他方法(而不每次转换实例变量),则可以更容易地删除现有的JPanel并使用新类添加"Bean“。
这是通过单击调色板中的“选择Bean”按钮来完成的:

单击OK后,可以将面板放置在窗体上,NetBeans将创建一个类型为MyJPanel (而不是JPane)的实例变量,并且可以访问该类中定义的所有方法。注意,必须先编译类,然后才能这样添加它!
发布于 2013-08-24 09:26:00
嗨,我是一个新手程序员,我想用Netbeans开发一个Java程序的GUI
嗨!因为你是一个新手程序员,所以可以使用Netbeans作为一个常规的文本编辑器。为了做到这一点,创建简单的Java类而不是表单,然后自己编写代码。原因是你必须先了解Swing,然后才能处理Netbeans的方法。
我是否应该用我的自定义JPanel ()函数来创建一个实现JComponent或JComponent的新类呢?
当然,您只能扩展JPanel或JComponent,因为它们不是接口。
如果坚持使用Netbeans Mattise GUI编辑器,那么创建一个新的JPanel表单并覆盖它的paintComponent方法。
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
// do your painting here...
g.setColor(Color.RED);
g.fillRect(6, 20, 12, 120);
g.setColor(Color.WHITE);
g.drawString("test", 50, 25);
}最后,只需将组件添加到JFrame表单的构造函数中:
add(new MyNewJPanel());
pack();确保JFrame的ContentPane有一个适当的布局。
发布于 2013-08-24 08:25:50
如果我理解得很好,您就不应该实现画图,因为它调用了paintBorder、paintChildren和paintComponent。如果您想使用组件处理边框和子元素,请使用“油漆”,但不建议使用。使用paintComponent代替。
https://stackoverflow.com/questions/18416342
复制相似问题