GUI编程
程序员文章站
2022-03-08 10:23:57
...
GUI编程基础
组件:
窗口
弹窗
面板
文本窗
列表框
按钮
图片
监听事件
鼠标
键盘事件
**工具
组装和容器:
Frame
第一个窗口:
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class TestFrame {
public static void main(String[] args) {
Frame frame = new Frame("第一个Java窗口");
//设置窗口可见性 宽 w 高 h
frame.setVisible(true);
//设置窗口大小
frame.setSize(500,500);
//设置背景颜色
frame.setBackground(new Color(225, 219, 35));
//设置显示位置
frame.setLocation(300,300);
//设置大小固定
frame.setResizable(false);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
多个窗口:
尝试回顾封装应用!!!
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TestFrame1 {
public static void main(String[] args) {
//展示多个窗口
MyFrame myFrame1 = new MyFrame(100,100,200,200,Color.red);
MyFrame myFrame2 = new MyFrame(300,100,200,200,Color.yellow);
MyFrame myFrame3 = new MyFrame(100,300,200,200,Color.blue);
MyFrame myFrame4 = new MyFrame(300,300,200,200,Color.white);
}
}
class MyFrame extends Frame{
static int id = 0; //可能存在多个窗口 ,需要一个构造器
public MyFrame(int x, int y, int w, int h,Color color){
super("MyFrame+"+(++id));
setVisible(true);
setBounds(x,y,w,h);
setBackground(color);
//设置大小固定
//setResizable(false);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
panel面板
panel可以看成一个空间,但是不能单独存在
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TestFrame2 {
public static void main(String[] args) {
Frame frame = new Frame();
Panel panel = new Panel();
frame.setLayout(null);
frame.setBounds(200,200,500,500);
frame.setBackground(new Color(3,2, 2));
panel.setBounds(50,50,200,200);
panel.setBackground(new Color(250, 251, 255));
frame.setVisible(true);
frame.add(panel);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
打卡第一天!