这是我的简单代码。我真的不知道如何将绘制的椭圆添加到JPanel
。我以前做了一些画,但我从未使用过构造函数,所以我没有想法。
public class Buffer extends JPanel{
public JFrame frame;
public JPanel panel;
public Buffer(){
frame=new JFrame();
panel=new JPanel();
panel.setSize(500,500);
panel.setBackground(Color.red);
frame.setSize(500,500);
frame.setVisible(true);
frame.add(panel);
}
public void paintComponent(Graphics g){
super.paintComponents(g);
g.fillOval(20,20,20,20);
}
public static void main(String args[]){
new Buffer();
}
}
答案 0 :(得分:2)
您的代码的基本结构是错误的。 Buffer类不应该创建一个框架。 Buffer类应该只用于绘画。代码应该是这样的:
public static void main(String args[])
{
Buffer oval = new Buffer();
oval.setBackground(Color.RED);
JFrame frame=new JFrame();
frame.add( oval );
frame.setSize(500,500);
frame.setVisible(true);
}
确保调用super.paintComponent()(不带“s”)。您还应该重写getPreferredSize()
方法来设置自定义组件的大小。阅读Custom Painting上的Swing教程,了解更多信息和更好的示例。