学习文档:https://www.cnblogs.com/programthinking/p/13845265.html
学习视频:https://www.bilibili.com/video/BV1DJ411B75F/
2.1 AWT介绍
AWT Abstract Windows Tools 抽象窗口工具
GUI Graphical User Interface 图形用户接口
Frame
//GUI的第一个界面 public class TestFrame { public static void main(String[] args) { //使用时要学会点进去看源码 Frame frame = new Frame("我的第一个Java图像界面"); //需要设置可见性 frame.setVisible(true); //设置窗口大小 frame.setSize(400,400); //设置背景颜色 //new Color(1,1,1);//自定义颜色 frame.setBackground(Color.BLACK); //弹出的初始位置,(0,0)在左上角,为null居中 frame.setLocation(200,200);
//设置x叉可以关闭窗口
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//不允许放大缩小窗口
frame.setResizable(false); } }
布局
1.边界布局(BorderLayout)
setLayout(new BorderLayout()); //边界布局 JButton btn1 = new JButton("上"); add(btn1,BorderLayout.NORTH); JButton btn2 = new JButton("下"); add(btn2,BorderLayout.SOUTH); JButton btn3 = new JButton("左"); add(btn3,BorderLayout.WEST); JButton btn4 = new JButton("右"); add(btn4,BorderLayout.EAST); JButton btn5 = new JButton("中"); add(btn5,BorderLayout.CENTER);
2.流式布局(FlowLayout)---占满一行后换行---居中
setLayout(new FlowLayout()); //流式布局 JButton btn[] = new JButton[10]; for (int i = 0; i < btn.length; i++) { btn[i] = new JButton("第"+i+"个"); add(btn[i]); }
3.网格布局(GridLayout)
setLayout(new GridLayout(3,4,10,10)); //网格布局 JButton btn[] = new JButton[10]; for (int i = 0; i < btn.length; i++) { btn[i] = new JButton("第"+i+"个"); add(btn[i]); }
Panel
//Panel可以看成是一个空间,但不能单独存在 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(new Color(96, 255, 29, 255)); //Panel设置坐标,相对于frame panel.setBounds(50,50,400,400); panel.setBackground(new Color(0, 82, 255)); //放进frame frame.add(panel); frame.setVisible(true); //监听事件,监听窗口关闭事件 System.exit(0); //适配器模式 不去new WindowListener 实现太全部的接口 //而是去继承它的一个子类,子类有默认的实现,我们只写我们需要的那个功能 //这是AWT的解决方式,后面还有swing的解决方式 frame.addWindowListener(new WindowAdapter() { //窗口点击关闭的时候需要做的事情 @Override public void windowClosing(WindowEvent e) { //结束程序 System.exit(0); } }); } }
public class Demo { 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 panel1 = new Panel(new BorderLayout()); Panel panel2 = new Panel(new GridLayout(2,1)); Panel panel3 = new Panel(new BorderLayout()); Panel panel4 = new Panel(new GridLayout(2,2)); //上面 panel1.add(new Button("East-1"),BorderLayout.EAST); panel1.add(new Button("East-2"),BorderLayout.WEST); panel2.add(new Button("p2-btn-1")); panel2.add(new Button("p2-btn-2")); panel1.add(panel2,BorderLayout.CENTER); //下面 panel3.add(new Button("East-1"),BorderLayout.EAST); panel3.add(new Button("East-2"),BorderLayout.WEST); //中间的四个 for (int i = 0; i < 4; i++) { panel4.add(new Button("btn"+i)); } panel3.add(panel4,BorderLayout.CENTER); frame.add(panel1); frame.add(panel3); } }
标签:BorderLayout,GUI,编程,JButton,add,new,frame,Panel From: https://www.cnblogs.com/xinyu-yudian/p/16882961.html