| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 愷龍 于 2021-9-19 15:47 编辑  
 
Panel 面板: 
Panel 必须存在与容器中显示 不能独立显示 
 
Panel 面板和 Frame 窗口用法基本一致 
 
通过 add 来进行添加一些组件 
 
四种布局模式: 
- frame.setLayout(LayoutManager mgr)  //参数为LayoutManage对象  LayouMannager是一个接口
 
  复制代码 
BorderLayout 类 东南西北中布局模式 
- import java.awt.*;
 
 - public class TestBorderLayout {
 
 -     public static void main(String[] args) {
 
 -         Frame frame = new Frame("东西南北中");
 
 -         Button button1 = new Button("East");
 
 -         Button button2 = new Button("west");
 
 -         Button button3 = new Button("south");
 
 -         Button button4 = new Button("north");
 
 -         Button button5 = new Button("center");
 
 -         //添加东西南北中效果
 
 -         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.setSize(526,526);
 
 -         frame.setVisible(true);
 
 -     }
 
 - }
 
 
  复制代码 
 
 
FlowLayout 类 流式布局模式 从左到右 从上到下 
- import java.awt.*;
 
 - public class TestFlowLayout {
 
 -     public static void main(String[] args) {
 
 -         Frame frame = new Frame();
 
 -         //设置按钮
 
 -         Button button = new Button("yuyan1");
 
 -         Button button1 = new Button("yuyan2");
 
 -         Button button2 = new Button("yuyan3");
 
 -         //设置为流式布局
 
 -         frame.setLayout(new FlowLayout());    //默认居中
 
 -        // frame.setLayout(new FlowLayout(FlowLayout.LEFT));  //左
 
 -         //添加按钮
 
 -         frame.add(button);
 
 -         frame.add(button1);
 
 -         frame.add(button2);
 
 -         //显示
 
 -         frame.setVisible(true);
 
 -     }
 
 - }
 
 
  复制代码 
 
 
GridLayout 类 栅格式布局模式 表格模式 几行几列 
- import java.awt.*;
 
  
- public class TestGridLayout {
 
 -     public static void main(String[] args) {
 
 -         Frame frame = new Frame("表格布局");
 
 -         Button button1 = new Button("1");
 
 -         Button button2 = new Button("2");
 
 -         Button button3 = new Button("3");
 
 -         Button button4 = new Button("4");
 
 -         Button button5 = new Button("5");
 
 -         Button button6 = new Button("6");
 
 -         //设置行列
 
 -         frame.setLayout(new GridLayout(3,2));
 
 -         frame.add(button1);
 
 -         frame.add(button2);
 
 -         frame.add(button3);
 
 -         frame.add(button4);
 
 -         frame.add(button5);
 
 -         frame.add(button6);
 
 -         //Java的函数,自动布局
 
 -         frame.pack();
 
 -         frame.setVisible(true);
 
 -     }
 
 - }
 
 
  复制代码 
 
 
这三个类都是 LayouManager 接口的实现类 
- frame.setLayout(new FlowLayout());  //流式布局  组件呈流失分布 从左向右 从上到下
 
 - frame.setLayout(new BorderLayout(int hgap, int vgap))  //东南西北中布局  组件呈特定方向排布  默认为中 center
 
 - frame.setLayout(new GridLayout(int rows, int cols, int hgap, int vgap))  //将窗口分成几行几列的表单 每个组件占一格分布                    //hgap vgap 为容器内行 列 间隔   可以不填默认无间隔
 
  复制代码 
具体用法: 
- Button b=new Button("我是按钮组件");
 
 - frame.add(b);                      //自动流式布局 
 
 - frame.add(b,BoderLayout.WEST);   //将按钮向西排列布局 BoderLayout类中已经设置好了布局位置的静态常量可以直接调用
 
 -                                 //BoderLayout.EAST : 东   BoderLayout.CENTER  : 中
 
 - frame.setLayout(new GridLayout(2,2))  //栅格布局 将窗口分为两行两列
 
 - frame.add(b)    //按钮位置在窗口左上方 占窗口四分之一大小
 
  复制代码 
上面是三种布局模式 
 
绝对定位布局: 
 
根据组件设置的坐标 自动相对于窗口定位 
 
设置坐标: 1. setLocation (int : x , int : y) 2. setBounds (int : x , int : y ,int : width , int : height) 
- frame.setLayout(null)              //绝对定位
 
 - Button b=new Button("按钮")
 
 - b.setLocation(100,100);            //设置按钮在窗口内的位置坐标
 
 - frame.add(b)                    //将按钮添加到窗口上  按钮在 x 为100  Y 为100的位置上
 
  复制代码 
面板: 
- 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();
 
 -         Panel panel = new Panel();
 
 -         //设置布局
 
 -         frame.setLayout(null);
 
 -         //坐标
 
 -         frame.setBounds(300, 300, 500, 500);
 
 -         frame.setBackground(Color.GREEN);
 
 -         //panel设置左边,相对于frame
 
 -         panel.setBounds(50, 50, 400, 400);
 
 -         panel.setBackground(Color.RED);
 
 -         //frame.add(panel)
 
 -         frame.add(panel);
 
 -         frame.setVisible(true);
 
 -         //监听事件,监听窗口关闭事件system.exit(0)
 
 -         //适配器模式
 
 -         frame.addWindowListener(new WindowAdapter(){
 
 -             //窗口点击关闭时需要做的事情
 
 -             public void windowClosing(WindowEvent e){
 
 -                 //结束程序
 
 -                 System.exit(0);
 
 -             }
 
 -         });
 
 -     }
 
 -     
 
 - }
 
 
  复制代码 
 
一个小实践 
 
- import java.awt.*;
 
 - import java.awt.event.WindowAdapter;
 
 - import java.awt.event.WindowEvent;
 
 - public class Test {
 
 -     public static void main(String[] args) {
 
 -         Frame frame = new Frame("作业");
 
 -         frame.setSize(526,526);
 
 -         Panel panel = new Panel();
 
 -         Panel panel1 = new Panel();
 
 -         Panel panel2 = new Panel();
 
 -         Panel panel3 = new Panel();
 
 -         panel.setBounds(0,0,50,526);
 
 -         panel1.setBounds(50,0,426,263);
 
 -         panel2.setBounds(50,263,426,263);
 
 -         panel3.setBounds(476,0,50,526);
 
 -         //便于区分
 
 -         panel.setBackground(new Color(58, 65, 219));
 
 -         panel1.setBackground(new Color(21, 220, 151));
 
 -         panel2.setBackground(new Color(224, 208, 63));
 
 -         panel3.setBackground(new Color(231, 125, 98));
 
 -         frame.add(panel);
 
 -         frame.add(panel1);
 
 -         frame.add(panel2);
 
 -         frame.add(panel3);
 
 -         Button button1 = new Button("1");
 
 -         Button button2 = new Button("2");
 
 -         Button button3 = new Button("3");
 
 -         Button button4 = new Button("4");
 
 -         Button button5 = new Button("5");
 
 -         Button button6 = new Button("6");
 
 -         Button button7 = new Button("7");
 
 -         Button button8 = new Button("8");
 
 -         Button button9 = new Button("9");
 
 -         Button button10 = new Button("10");
 
 -         panel.setLayout(new GridLayout(2,1));
 
 -         panel1.setLayout(new GridLayout(2,1));
 
 -         panel2.setLayout(new GridLayout(2,2));
 
 -         panel3.setLayout(new GridLayout(2,1));
 
 -         panel.add(button1);
 
 -         panel.add(button2);
 
 -         panel1.add(button3);
 
 -         panel1.add(button4);
 
 -         panel2.add(button5);
 
 -         panel2.add(button6);
 
 -         panel2.add(button7);
 
 -         panel2.add(button8);
 
 -         panel3.add(button9);
 
 -         panel3.add(button10);
 
 -         //监听事件,监听窗口关闭事件  System.exit(0)
 
 -         //适配器模式:
 
 -         frame.addWindowListener(new WindowAdapter() {
 
 -             @Override
 
 -             public void windowClosing(WindowEvent e) {
 
 -                 //结束程序
 
 -                 System.exit(0);
 
 -             }
 
 -         });
 
 -         frame.pack();
 
 -         //frame.setResizable(false);
 
 -         frame.setVisible(true);
 
 -     }
 
 - }
 
  复制代码 
 |   
 
 
 
 |