我正在尝试创建一个使用 JPanel 的 PaintComponent() 绘制形状(下面示例中的矩形)的程序,但我无法让它工作,也无法发现问题所在。
代码如下:
import javax.swing.*;
import java.awt.*;
public class RandomRec{
JFrame frame;
public void go(){
frame = new JFrame();
frame.setSize(500,500);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DrawPanel panel = new DrawPanel();
}
public static void main (String[] args){
class DrawPanel extends JPanel{
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.orange);
g.drawRect(20, 20, 100, 60);
}
}
RandomRec test = new RandomRec();
test.go();
}
}
对此的任何帮助将不胜感激。
谢谢。
*UPDATE*问题解决了!将 go() 方法移出 main 方法,添加一个frame.add(panel)并将frame.setVisible(true)移动到go()方法的底部(更具体地说,在将面板添加到之后将其移动到框架)已经解决了这个问题。谢谢。
你的班DrawPanel
仅限于你的范围main
方法,并且对您的构造函数不可见。
你需要移动DrawPanel
从你的main
方法,然后将其添加到您的JFrame
:
frame.add(panel);
另外最好打电话frame.setVisible(true)
添加完所有组件后。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)