本段代码实现了java Graphics库的最基本的功能,画一条直线。
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Scanner;
class MyFrame extends Frame {
int x1, y1, x2, y2;
public MyFrame(String title) {
super(title); //没有这条语句,创建不会显示标题,但是我记得子类执行构造方法时会默认执行父类的构造方法的啊???
Scanner scanner = new Scanner(System.in);
System.out.println("输入第一个点坐标:");
x1 = scanner.nextInt();
y1 = scanner.nextInt();
System.out.println("输入第二个点坐标:");
x2 = scanner.nextInt();
y2 = scanner.nextInt(); //scanner类输入两点
scanner.close();
}
public void paint(Graphics g) { //Graphics g ; Graphics类的对象g
System.out.println("paint");
g.drawLine(x1, y1, x2, y2); //Graphics类的画线方法
}
}//10分
public class Line {
public static void main(String[] args) {
MyFrame f = new MyFrame("画线程序");
f.setSize(800, 600); //设置窗口大小
f.addWindowListener(new WindowAdapter() { //设置窗口关闭事件处理
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}
});
f.setVisible(true);
}
}
结果展示:
当你改变窗口大小的时候,你会发现屏幕上会打印paint,这就是直线在动态更新吧!
即paint函数在被重新执行。
有想法的小伙伴可以留言哦!