窗口
468字约2分钟
2025-10-03
创建窗口
public class Window01 extends JFrame {
Win1 win = null;
public static void main(String[] args) {
new Window01();
}
public Window01() {
// 创建面板
win = new Win1();
// 把面板放到窗口中
this.add(win);
// 窗口大小
this.setSize(600, 800);
// 当关闭窗口时,程序自动退出
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 显示画面
this.setVisible(true);
// 当窗口关闭时执行
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.out.println("窗口关闭");
Recorder.xieru();
// 退出程序
System.exit(0);
}
}
);
}
}
// 创建一个类,用来当作面板
class Win1 extends JPanel {
// paint方法是绘图方法
// 窗口大小发生变化的时候会调用paint方法
@Override
public void paint(Graphics g) {
super.paint(g);
// 对应值:x y width height
// 将屏幕的宽看成x,高看成y,确定交叉点
// width 和 height 对应的是图像的 宽 和 高
g.drawOval(50, 50, 200, 200);
}
}
常用绘图方法
@Override
public void paint(Graphics g) {
super.paint(g);
System.out.println("paint ");
// 直线,起点 x y(50, 50) 终点(200, 200)
g.drawLine(50, 50, 200, 200);
// 对应值:x y width height
// 将屏幕的宽看成x,高看成y,确定交叉点(即图像左上角的点)
// width 和 height 对应的是图像的 宽 和 高
// x + 向左移,y + 向下移
// 圆环
g.drawOval(50, 50, 200, 200);
// 实心圆
g.fillOval(50, 50, 200, 200);
// 矩形边框
g.drawRect(50, 50, 200, 200);
// 填充矩形
// 设置颜色
g.setColor(Color.orange);
g.fillRect(50, 300, 200, 200);
// 填充椭圆
g.setColor(Color.PINK);
g.fillOval(300, 300, 200, 200);
// 图片
// 图片路径
Image image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/OIP-C.jpg"));
// 对应 图片路径,位置x y,图片长和宽
g.drawImage(image, 300, 50, 240, 235, this);
// 字符串
// 对应 字体类型,粗细以及大小
g.setFont(new Font("微软雅黑", Font.BOLD, 50));
g.drawString("Hello", 50, 600);
}
// 图片路径
// 要放在out文件夹中的项目文件夹里面
C:.
├─out
│ └─production
│ └─Exclipt
│ │ OIP-C.jpg <--
│ │
│ └─com
│ └─mao
└─src
└─com
└─mao