GUI编程简介
Gui的核心技术:SwingAWT 1.因为界面不美观 2.需要jre环境! 为什么我们要学习? 1.可以写出自己心中想要的一些小工具 2.工作时候,也可能需要维护到swing界面,概率极小!3.了解MVC架构,了解监听!
第一个Frame窗口
public static void main(String[] args) {
//创建一个图形化对象,设置标题
Frame frame = new Frame("我的第一个Java图像界面窗口");
//设置可见性
frame.setVisible(true);
//设置窗口大小
frame.setSize(400, 400);
//设置背景颜色,参数为Color对象
frame.setBackground(new Color(78, 102, 119));
//弹出的初始位置
frame.setLocation(750, 300);
//设置窗口大小固定:false为不可调节大小
frame.setResizable(false);
}
Prnel布局面板
prnel是存在于窗口当中,窗口的最大部分为背景,类似于管理系统中除了上边栏和侧边栏之外的显示部分。
public static void main(String[] args) {
//创建一个图形化对象,设置标题
Frame frame = new Frame(" " + "贪吃蛇");
//布局
Panel panel = new Panel();
//设置布局
frame.setLayout(null);
//设置窗口大小和初始坐标和和背景颜色
frame.setBounds(300, 300, 500, 500);
frame.setBackground(new Color(182, 155, 67));
//设置布局大小和背景颜色
panel.setBounds(50, 0, 450, 500);
panel.setBackground(new Color(45, 175, 128));
//布局对象加入窗口中
frame.add(panel);
//设置窗口大小固定:false为不可调节大小
frame.setResizable(false);
//设置窗口可见
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
//窗口点击关闭时需要做的事情
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
System.exit(0);
}
});
}
布局管理器
流式布局:布局的东西都居中
public static void main(String[] args) {
Frame frame = new Frame();
Button button1 = new Button("bt1");
Button button2 = new Button("bt2");
Button button3 = new Button("bt3");
//设置流式布局
frame.setLayout(new FlowLayout());
frame.setSize(400,400);
frame.add(button1);
frame.add(button2);
frame.add(button3);
//设置窗口可见
frame.setVisible(true);
}
}
东西南北中布局
//东西南北中布局
public static void main(String[] args) {
Frame frame = new Frame();
Button east = new Button("East");
Button west = new Button("West");
Button south = new Button("South");
Button north = new Button("North");
Button center = new Button("Center");
frame.add(east, BorderLayout.EAST);
frame.add(west, BorderLayout.WEST);
frame.add(south, BorderLayout.SOUTH);
frame.add(north, BorderLayout.NORTH);
frame.add(center, BorderLayout.CENTER);
frame.setSize(400, 400);
frame.setVisible(true);
}
}
表格布局
//表格布局
public static void main(String[] args) {
Frame frame = new Frame();
Button but1 = new Button("but1");
Button but2 = new Button("but2");
Button but3 = new Button("but3");
Button but4 = new Button("but4");
Button but5 = new Button("but5");
Button but6 = new Button("but6");
frame.setLayout(new GridLayout(3,2));
frame.add(but1);
frame.add(but2);
frame.add(but3);
frame.add(but4);
frame.add(but5);
frame.add(but6);
frame.pack();
frame.setSize(400, 400);
frame.setVisible(true);
}
}
布局嵌套
//布局嵌套
public static void main(String[] args) {
Frame frame = new Frame();
//总大小
frame.setSize(400, 300);
//弹出的初始位置
frame.setLocation(300, 400);
//背景颜色
frame.setBackground(Color.BLACK);
//可见性
frame.setVisible(true);
//设置表格布局
frame.setLayout(new GridLayout(2, 1));
//4个面板
Panel p1 = new Panel(new BorderLayout());
Panel p2 = new Panel(new GridLayout(2, 1));
Panel p3 = new Panel(new BorderLayout());
Panel p4 = new Panel(new GridLayout(2, 2));
//上面
p1.add(new Button("East-1"), BorderLayout.EAST);
p1.add(new Button("West-1"), BorderLayout.WEST);
p2.add(new Button("p2-but-1"));
p2.add(new Button("p2-but-2"));
p1.add(p2,BorderLayout.CENTER);
//下面
p3.add(new Button("East-2"), BorderLayout.EAST);
p3.add(new Button("West-2"), BorderLayout.WEST);
//中间四个
for (int i = 0; i < 4; i++) {
p4.add(new Button("for-" + i));
}
p3.add(p4, BorderLayout.CENTER);
frame.add(p1);
frame.add(p3);
}
点击事件及关闭监听
class ClickEvent {
//布局嵌套
public static void main(String[] args) {
Frame frame = new Frame();
Button button = new Button();
//因为监听器需要实现ActionListener,所以创建了MyActionListener类
MyActionListener myActionListener = new MyActionListener();
button.addActionListener(myActionListener);
//布局设置居中
frame.add(button, BorderLayout.CENTER);
frame.pack();
//调用关闭方法
windowClose(frame);
//可见度
frame.setVisible(true);
}
//点击关闭事件
public static void windowClose(Frame frame) {
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
System.out.println("点击了关闭窗口");
System.exit(0);
}
});
}
}
//点击事件
class MyActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.out.println("aaa");
}
}
多个按钮设置一个监听
class ClickEvent {标签:BorderLayout,复习,Frame,Button,JavaDay08,add,new,frame From: https://www.cnblogs.com/a-sun/p/17438997.html
//布局嵌套
public static void main(String[] args) {
Frame frame = new Frame("开始-停止");
Button button1 = new Button("statr");
Button button2 = new Button("stop");
//多个按键设置一个监听
button2.setActionCommand("button2-stop");
//因为监听器需要实现ActionListener,所以创建了MyActionListener类
MyMonitor myMonitor = new MyMonitor();
button1.addActionListener(myMonitor);
button2.addActionListener(myMonitor);
//布局设置居中
frame.add(button1, BorderLayout.NORTH);
frame.add(button2, BorderLayout.SOUTH);
frame.pack();
//可见度
frame.setVisible(true);
//调用关闭方法
windowClose(frame);
}
//点击关闭事件
public static void windowClose(Frame frame) {
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
System.out.println("点击了关闭窗口");
System.exit(0);
}
});
}
}
//点击事件
class MyMonitor implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.out.println("按键被点击了:" + e.getActionCommand());
if (e.getActionCommand().equals("statr")) {
System.out.println("小明");
}else {
System.out.println("小红");
}
}
}