暑期GUI学习

窗体Frame基础设置

import java.awt.*;

public class TestFrame1 {
    public static void main(String[] args) {
        Frame frame=new Frame("LQD");
        frame.setVisible(true);//设置窗口的可见性
        frame.setResizable(true);//设置窗口是否可调节大小
        frame.setSize(400,400);//设置窗口大小
        frame.setBackground(new Color(146, 181, 215));//背景颜色设置
        frame.setLocation(200,200);//窗口弹出位置设置
    }
}

窗体Frame的封装

import java.awt.*;

public class TestFrame2 {
    public static void main(String[] args) {
        MyFrame myFrame1=new MyFrame(100,100,200,200,Color.blue);
        MyFrame myFrame2=new MyFrame(300,100,200,200,Color.yellow);
        MyFrame myFrame3=new MyFrame(300,300,200,200,Color.BLACK);
        MyFrame myFrame4 = new MyFrame(100, 200, 300, 400, Color.BLACK);

    }
     static class MyFrame extends Frame{//封装继承Frame类,这部分要注意静态部分 static class 和static int 需要保持一致
         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);

        }
    }
}

面板Panel基础设置

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class TestPanel1 {
    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(7, 226, 245));
        //Panel设置坐标,相对于frame
        panel.setBounds(50,50,400,400);
        panel.setBackground(new Color(34, 109, 184));
        //frame add(panel)
        frame.add(panel);
        frame.setVisible(true);


        //监听事件  监听窗口关闭事件 System.exit(0)
        //适配器模式 windowsAdapter;也可以使用Windowslistener,但是重写的内容太多,为了简化和便于管理,使用更为方便的WindowsAdapter
        frame.addWindowListener(new WindowAdapter() {
            //窗口点击关闭时需要做的事情
            @Override
            public void windowClosing(WindowEvent e) {
                //super.windowClosing(e);
                System.exit(0);
            }
        });
    }
}

布局管理器

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class TestPanel1 {
    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(7, 226, 245));
        //Panel设置坐标,相对于frame
        panel.setBounds(50,50,400,400);
        panel.setBackground(new Color(34, 109, 184));
        //frame add(panel)
        frame.add(panel);
        frame.setVisible(true);
        //按钮组件
        Button button1 = new Button("button1");
        Button button2 = new Button("button2");
        Button button3 = new Button("button3");


        frame.setLayout(new FlowLayout(FlowLayout.LEFT));//设置为流式布局
        frame.setSize(200,200);
        frame.add(button1);
        frame.add(button2);
        frame.add(button3);



        //监听事件  监听窗口关闭事件 System.exit(0)
        //适配器模式;

        frame.addWindowListener(new WindowAdapter() {
            //窗口点击关闭时需要做的事情
            @Override
            public void windowClosing(WindowEvent e) {

                System.exit(0);
            }
        });
    }
}

三种布局方式
1,流式布局 FlowLayout
在这里插入图片描述

2,东西南北中布局
在这里插入图片描述

import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class TestPanel1 {
    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(7, 226, 245));
        //Panel设置坐标,相对于frame
        /*panel.setBounds(50,50,400,400);
        panel.setBackground(new Color(34, 109, 184));
        //frame add(panel)
        frame.add(panel);*/

        //按钮组件
        Button button1 = new Button("button1");
        Button button2 = new Button("button2");
        Button button3 = new Button("button3");
        Button button4 = new Button("button4");
        Button button5 = new Button("button5");


        frame.setLayout(new BorderLayout());//设置布局方式
        frame.setSize(200,200);
        frame.add(button1,BorderLayout.EAST);
        frame.add(button2,BorderLayout.WEST);
        frame.add(button3,BorderLayout.SOUTH);
        frame.add(button4,BorderLayout.NORTH);
        frame.add(button5,BorderLayout.CENTER);
        frame.setVisible(true);




        //监听事件  监听窗口关闭事件 System.exit(0)
        //适配器模式;

        frame.addWindowListener(new WindowAdapter() {
            //窗口点击关闭时需要做的事情
            @Override
            public void windowClosing(WindowEvent e) {

                System.exit(0);
            }
        });
    }
}

3,表格布局Grid
在这里插入图片描述

import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class TestPanel1 {
    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(7, 226, 245));
        //Panel设置坐标,相对于frame
        /*panel.setBounds(50,50,400,400);
        panel.setBackground(new Color(34, 109, 184));
        //frame add(panel)
        frame.add(panel);*/

        //按钮组件
        Button button1 = new Button("button1");
        Button button2 = new Button("button2");
        Button button3 = new Button("button3");
        Button button4 = new Button("button4");
        Button button5 = new Button("button5");


        frame.setLayout(new GridLayout(2,3));//设置布局方式
        frame.setSize(200,200);
        frame.add(button1);
        frame.add(button2);
        frame.add(button3);
        frame.add(button4);
        frame.add(button5);
        frame.pack();//Java的函数,自动选择一个最优布局方式
        frame.setVisible(true);




        //监听事件  监听窗口关闭事件 System.exit(0)
        //适配器模式;

        frame.addWindowListener(new WindowAdapter() {
            //窗口点击关闭时需要做的事情
            @Override
            public void windowClosing(WindowEvent e) {

                System.exit(0);
            }
        });
    }
}

设计部分(使用panel嵌套方法)

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class exercise {
    public static void main(String[] args) {
        Frame frame = new Frame();
        frame.pack();
        frame.setSize(600,600);
        frame.setLayout(new BorderLayout());
        Panel panel1 = new Panel();

        Panel panel2 = new Panel();
        Panel panel3 = new Panel();
        frame.add(panel1,BorderLayout.WEST);
        frame.add(panel2,BorderLayout.CENTER);
        frame.add(panel3,BorderLayout.EAST);
        Panel panelup = new Panel();
        Panel paneldown = new Panel();
        panel2.setLayout(new GridLayout(2,1));
        panel2.add(panelup);
        panel2.add(paneldown);
        panelup.setLayout(new GridLayout(2,1));
        paneldown.setLayout(new GridLayout(2,2));
        Button button1 = new Button("but1");
        Button button2 = new Button("but2");
        Button button3 = new Button("but3");
        Button button4 = new Button("but4");
        Button button5 = new Button("but5");
        Button button6 = new Button("but6");
        Button button7 = new Button("but7");
        Button button8 = new Button("but8");
        Button button9 = new Button("but9");
        Button button10 = new Button("but10");
        panel1.setLayout(new GridLayout(2,1));
        panel1.add(button1);
        panel1.add(button2);
        panel3.setLayout(new GridLayout(2,1));
        panel3.add(button3);
        panel3.add(button4);
        panelup.add(button5);
        panelup.add(button6);
        paneldown.add(button7);
        paneldown.add(button8);
        paneldown.add(button9);
        paneldown.add(button10);


        frame.setVisible(true);
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        
    }

}

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值