展开全部
方法1:public static void main(String[] args) {
//JPanel p = new JPanel(); 注释掉这句
JFrame frame = new JFrame("DrawLine");
frame.add(new DrawLine());//将p对象换成本类
//因为本e68a8462616964757a686964616f31333332643238类继承了JPanel重写paintComponent进行绘制,是绘制到本类的panel上的,
//而不是绘制到new Panel()对象
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawLine(50, 50, 200, 250);
}
方法2://这种方式可能 让你更理解
public static void main(String[] args) {
DrawLine dl = new DrawLine();//新建对象
dl.init();//执行初始化
}
private void init(){
//JPanel p = new JPanel(); 注释掉这句
JFrame frame = new JFrame("DrawLine");
frame.add(this);//将p对象换成本类
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawLine(50, 50, 200, 250);
}