问题描述
我在使用Netbeans GUI添加的JPanel内部绘制形状时遇到问题。现在,我不知道在哪里添加代码以在该JPanel内绘制一个圆,以及如何在现在处于空状态的JPanel中插入并调用它,等待绘制此形状。我已经将目标JPanel设置为Flow布局。 Netbeans Designer创建了一个大类,其中包含该JPanel的整个框架,我想将其保留在其中,因为我无法以任何其他方式真正添加它,因为Designer不允许我更改主要的initComponents方法,其中组件正在坐着。我一直在阅读教程和以前的文章,但没有人真正使用Netbeans Designer遇到过。 因此有人可以帮助我在此框架类中添加适当的方法以及如何从我要绘制的JPanel中调用它。JPanel是50x50像素。
因此,按照@Abra,我更改了一些代码:
所以我创建了一个新的Circle类,对其做了一些调整,因为我不想创建一个新框架,而是将其放入JPanel中。
public class Circle extends JPanel {
Color color;
public void circle(Color color) {
this.color = color;
setPreferredSize(new Dimension (30,30));
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawOval(0,r,r);
g.setColor(color);
}
private void showGUI() {
JPanel panel = new JPanel();
panel.add(this,FlowLayout.CENTER);
panel.setVisible(true);
}
}
然后,我在Designer中打开JPanel,并在initComponents方法中添加了运行它的代码:
circlePanel.setPreferredSize(new java.awt.Dimension(40,40));
new Circle().showGUI();
PanelDS.add(circlePanel);
circlePanel是此图形的目标,位于PanelDS本身内。这样是行不通的,但是Netbeans没有显示代码错误。此外,如何将颜色转发到圈子课程。