AWT
2.1、Awt介绍
- 
包含了很多类和接口! GUI! 
- 
元素:窗口,按钮,文本框 
- 
2.2组件和容器
1、Frame
package com.hua.demo; import java.awt.*; //Gui的第一个界面 public class TestFrame { public static void main(String[] args) { //Frame, JDK,看源码! Frame frame = new Frame("我的第一个Gui界面"); //需要设置可见性 w h frame.setVisible(true); //设置窗口大小 frame.setSize(400,400); //设置背景颜色 frame.setBackground(new Color(255, 255, 255)); //弹出的初始位置 frame.setLocation(500,200); //设置大小固定 frame.setResizable(false);//默认是true,即可以改变大小 } }

package com.hua.demo; import java.awt.*; public class TestFrame2 { public static void main(String[] args) { MyFrame myFrame1 = new MyFrame(100, 100, 200, 300, Color.blue); MyFrame myFrame2 = new MyFrame(300, 100, 200, 300, Color.yellow); MyFrame myFrame3 = new MyFrame(100, 400, 200, 300, Color.red); MyFrame myFrame4 = new MyFrame(300, 400, 200, 300, Color.green); } } class MyFrame extends Frame{ static int id=0;//可能存在多个计数器,我们需要一个计数器 public MyFrame(int x, int y, int w, int h, Color color){ super("MyFrame:"+(++id)); setBackground(color); setBounds(x,y,w,h); setVisible(true); } }

package com.hua.demo; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; //Panel 可以看成是一个空间,但是不能单独存在 public class TestPanel { public static void main(String[] args) { Frame frame = new Frame("MyFrame"); Panel panel = new Panel(); //设置布局 frame.setLayout(null); //坐标 frame.setBounds(200,200,400,400); frame.setBackground(new Color(212, 158, 41)); //panel 设置坐标,相对于frame panel.setBounds(50,50,300,300); panel.setBackground(new Color(0x37D2D2)); //添加进去 frame.add(panel); frame.setVisible(true); //监听事件,监听窗口关闭事件 System.exit(0) //适配器模式: frame.addWindowListener(new WindowAdapter() { //窗口点击关闭的时候需要做的事情 @Override public void windowClosing(WindowEvent e) { //结束程序 System.exit(0); } }); } }

- 
流式布局 
package com.hua.demo; 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 button1 = new Button("button1"); Button button2 = new Button("button2"); Button button3 = new Button("button3"); //设置为流式布局 // frame.setLayout(new FlowLayout()); // frame.setLayout(new FlowLayout(FlowLayout.LEFT)); frame.setLayout(new FlowLayout(FlowLayout.RIGHT)); frame.setSize(300,300); //把按钮添加上去 frame.add(button1); frame.add(button2); frame.add(button3); frame.setVisible(true); frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } }
package com.hua.demo; 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"); 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); frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } }
package com.hua.demo; 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("GridLayout"); 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"); Button button6 = new Button("button6"); frame.setLayout(new GridLayout(3,2)); frame.add(button1); frame.add(button2); frame.add(button3); frame.add(button4); frame.add(button5); frame.add(button6); frame.pack();//java函数,自动配置合适的大小 frame.setVisible(true); frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } }
练习

package com.hua.demo; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class ExFrame { public static void main(String[] args) { //总 Frame Frame frame = new Frame(); frame.setLayout(new GridLayout(2,1)); frame.setVisible(true); frame.setSize(400,300); frame.setLocation(200,400); frame.setBackground(new Color(0x4EC4B7)); //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)); //上面OK p1.add(new Button("West-1"),BorderLayout.WEST); p1.add(new Button("East-1"),BorderLayout.EAST); p2.add(new Button("p2-but-1"),BorderLayout.CENTER); p2.add(new Button("p2-but-2"),BorderLayout.CENTER); p1.add(p2,BorderLayout.CENTER); //下面 p3.add(new Button("West-2"),BorderLayout.WEST); p3.add(new Button("East-2"),BorderLayout.EAST); //中间 for (int i = 1; i < 5; i++) { p4.add(new Button("but-"+i)); } p3.add(p4,BorderLayout.CENTER); frame.add(p1); frame.add(p3); frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } }
总结:
- 
Frame是一个顶级窗口 
- 
Panel无法单独显示,必须添加到某个容器中 
- 
布局管理器 - 
流式布局 
- 
东西南北中 
- 
表格布局 
 
- 
- 
大小,定位,背景颜色,可见性,监听! 
    我的一生
第1章-废物的一生 
第50章-糟糕的婴儿 
第300章-莫欺少年穷
 第600章-莫欺中年穷 
第1000章-莫欺老年穷
 第1100章-不详的离去
 第1101章-棺材板的震动 
第1150章-盗墓贼的眼泪 
第1200章-死者为大


 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号