Day10(gui编程)
-
创建第一个Frame(窗口)
package cn.ljystudy.GUI.s1;
import java.awt.*;
/**
* Gui的第一个窗口界面
*/
public class frame {
public static void main(String[] args) {
//创建一个窗口
Frame f1=new Frame("我的第一个窗口");
//设置可见性
f1.setVisible(true);
//设置大小
f1.setSize(100,100);
//设置起始位置
f1.setLocation(100,100);
//设置背景颜色
f1.setBackground(Color.BLUE);
//设置不能拉伸
f1.setResizable(false);
}
}
实现效果图如左
通过封装实现多个窗口
package cn.ljystudy.GUI.s1;
import java.awt.*;
/**
* 使用封装来实现多个窗口的创建
*/
public class MyFrame {
public static void main(String[] args) {
Framemould f1=new Framemould(100,100,100,100,new Color(12,123,12));
Framemould f2=new Framemould(200,100,100,100,new Color(255,123,12));
Framemould f3=new Framemould(100,200,100,100,new Color(255,255,12));
Framemould f4=new Framemould(200,200,100,100,new Color(1,255,255));
}
}
class Framemould extends Frame{
//创建多个窗体需要计数
static int id=0;
Framemould(int x, int y, int width, int heigh, Color color){
//super必须写在第一行
super("这是我的窗口"+(++id));
setBackground(color);
//第一种方式
//setLocation(x,y);
//setSize(width,heigh);
//第二种方式
setBounds(x,y,width,heigh);
setResizable(false);
setVisible(true);
}
}
效果图如下:
-
面板Panel(解决了窗口关闭的问题)
package cn.ljystudy.GUI.s1;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
/**
* 学习面板
*/
public class TestPanel {
public static void main(String[] args) {
//创建一个窗口
Frame frame=new Frame("面板学习");
//设置布局(使用了这个才可以在窗口上布局)
frame.setLayout(null);
//创建面板
Panel panel=new Panel();
//给窗口设置位子和大小和背景颜色
frame.setBounds(100,100,500,500);
frame.setBackground(new Color(150,150,150));
//设置面板的位置和大小和背景颜色
panel.setBounds(50,50,400,400);
panel.setBackground(new Color(255,2,2));
//将面板添加到窗口上
frame.add(panel);
//设置窗口的可见性
frame.setVisible(true);
//实现窗口的关闭
//添加监听
//监听有(适配器模式)
frame.addWindowListener(new WindowAdapter() {
-
布局管理
-
流式布局
package cn.ljystudy.GUI.s1;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TestFlowLayout {
public static void main(String[] args) {
Frame frame=new Frame("流式布局");
//按钮组件 button
Button b1=new Button("b1");
Button b2=new Button("b2");
Button b3=new Button("b3");
Button b4=new Button("b4");
Button b5=new Button("b5");
//设置流式布局
frame.setLayout(new FlowLayout(FlowLayout.RIGHT ));
//设置大小
frame.setSize(500,500);
//设置可见
frame.setVisible(true);
//将按钮添加到窗体中
frame.add(b1);
frame.add(b2);
frame.add(b3);
frame.add(b4);
frame.add(b5);
//添加监听
frame.addWindowListener(new WindowAdapter() {
-
东西南北中
package cn.ljystudy.GUI.s1;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TestBorderLayout {
public static void main(String[] args) {
Frame frame=new Frame();
//创建BorderLayout布局
//frame.setLayout(new BorderLayout());
//按钮组件 button
Button b1=new Button("b1");
Button b2=new Button("b2");
Button b3=new Button("b3");
Button b4=new Button("b4");
Button b5=new Button("b5");
//设置大小
frame.setSize(500,500);
//设置可见
frame.setVisible(true);
//将按钮添加到窗体中
frame.add(b1,BorderLayout.CENTER);
frame.add(b2,BorderLayout.NORTH);
frame.add(b3,BorderLayout.WEST);
frame.add(b4,BorderLayout.EAST);
frame.add(b5,BorderLayout.SOUTH);
//添加监听
frame.addWindowListener(new WindowAdapter() {
-
表格Grid
package cn.ljystudy.GUI.s1;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TestGridLayout {
public static void main(String[] args) {
Frame frame = new Frame();
frame.setLayout(new GridLayout(2, 3));
//按钮组件 button
Button b1 = new Button("b1");
Button b2 = new Button("b2");
Button b3 = new Button("b3");
Button b4 = new Button("b4");
Button b5 = new Button("b5");
Button b6 = new Button("b6");
//设置大小
frame.setSize(500, 500);
//设置可见
frame.setVisible(true);
//将按钮添加到窗体中
frame.add(b1);
frame.add(b2);
frame.add(b3);
frame.add(b4);
frame.add(b5);
frame.add(b6);
//frame.pack();//系统会选择最好的比例
//添加监听
frame.addWindowListener(new WindowAdapter() {
-
练习
package cn.ljystudy.GUI.s1;
import java.awt.*;
public class Demo01 {
public static void main(String[] args) {
Frame frame = new Frame();
frame.setLayout(new GridLayout(2,1));
frame.setSize(500,500);
frame.setLocation(100,100);
frame.setVisible(true);
//创建4个画板
Panel panel=new Panel();
Panel panel2=new Panel();
Panel panel3=new Panel();
Panel panel4=new Panel();
//设置button
Button b1=new Button("1");
Button b2=new Button("2");
Button b3=new Button("3");
Button b4=new Button("4");
Button b5=new Button("5");
Button b6=new Button("6");
//窗体的操作
panel.setLayout(new BorderLayout());
frame.add(panel);
frame.add(panel2);
//画板1的操作
panel.add(b3,BorderLayout.EAST);
panel.add(panel3,BorderLayout.CENTER);
panel.add(b4,BorderLayout.WEST);
//画板2
panel2.setLayout(new BorderLayout());
panel2.add(b5,BorderLayout.EAST);
panel2.add(b6,BorderLayout.WEST);
//画板3
panel3.setLayout(new GridLayout(2,1));
panel3.add(b1);
panel3.add(b2);
//画板4
panel4.setLayout(new GridLayout(2,2));
for(int i=0;i<4;i++){
panel4.add(new Button("b"+i));
}
panel2.add(panel4,
-
-