paint方法的正确用法:
内容目录:
1.使用步骤。
2.原理。
3代码。
1.使用步骤。
1.1新建的.java文件里边的第一个类继承(extends)Jframe(容器)或者JPanel(轻量级容器)。
1.2写一个构造方法,进行初始化窗口(大小、位置、可见、关闭等)。
1.3写一个main方法调用构造方法。
1.4写一个paint方法进行画图,方法前边加@Override。
2.原理。
JFrame、JPanel类都有自己的方法其中有方法,而paint就是他们的方法,而且继承的paint方法在程序运行的时候会自动调用。
不去继承的话,paint方法是自己新写的属于当前类的方法,所以程序运行时并不会自动去调用paint方法,至于怎么去手动调用,暂时还没搞清楚。
所以总结一下就是我不去继承,就画不了东西。当然可能有别的我不知道的办法去手动调用这个方法。(欢迎大家留言纠正我的错误)
3代码。
3.1能画出来东西的代码:
package Test;
import java.awt.Graphics;
import javax.swing.JFrame;
public class Test extends JFrame{
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawRect(50, 50, 100, 100);
}
private void win() {
this.setVisible(true);
this.setSize(500, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
Test f = new Test();
f.win();
}
}
3.2不能画出来东西的代码:
package Test;
import java.awt.Graphics;
import javax.swing.JFrame;
public class Test2{
JFrame jf = new JFrame();
public Test2() {
jf.setBounds(500, 250, 500, 500);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void paint(Graphics g) {
g.drawRect(50, 50, 100, 100);
}
public static void main(String[] args) {
new Test2();
}
}