流式布局 FlowLayout
东西南北中 BorderLayout
表格布局 GridLayout
流式布局
package YMP.GUI; 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("TestFlowLayout"); Button button1=new Button("btn1");Button button2=new Button("btn2");Button button3=new Button("btn3"); frame.setLayout(new FlowLayout());frame.setSize(200,200);frame.setVisible(true); frame.add(button1);frame.add(button2);frame.add(button3); frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}}); } }
东西南北中
package YMP.GUI; 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("TestBorderLayout");Button east=new Button("East");Button west=new Button("Wset");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(200,200);frame.setVisible(true);frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});} }
表格布局
package YMP.GUI; 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("TestGridLayout"); frame.setLayout(new GridLayout(3,2)); for(int i=0;i<6;i++){frame.add(new Button("bton"+(i+1)));} frame.setSize(400,400);frame.setVisible(true);frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});} }
应用练习
设计出图片所示窗口
流程思路
1.frame顶级容器
2.4个panel,分别对应frame的上半,下半和图中橙黄两色块
3.蓝色部分为button
4.在橙黄色色块中用BorderLayout加入button
代码实现
package YMP.GUI; import javax.swing.border.Border; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.BufferedReader; public class ExDemo {public static void main(String[] args) {Frame frame=new Frame();frame.setSize(400,300);frame.setLayout(new GridLayout(2,1));frame.setVisible(true); Panel p1=new Panel();Panel p2=new Panel();Panel p3=new Panel();Panel p4=new Panel(); frame.add(p1);frame.add(p2); Button button1=new Button("btn1");Button button2=new Button("btn2");Button button3=new Button("btn3");Button button4=new Button("btn4");Button button5=new Button("btn5");Button button6=new Button("btn6");Button button7=new Button("btn7");Button button8=new Button("btn8");Button button9=new Button("btn9");Button button10=new Button("btn10"); p1.setLayout(new BorderLayout());p1.add(button2,BorderLayout.EAST);p1.add(button1,BorderLayout.WEST);p1.add(p3,BorderLayout.CENTER); p2.setLayout(new BorderLayout());p2.add(button3,BorderLayout.WEST);p2.add(button4,BorderLayout.EAST);p2.add(p4, BorderLayout.CENTER); p3.setLayout(new GridLayout(2,1));p3.add(button5);p3.add(button6); p4.setLayout(new GridLayout(2,2));p4.add(button7);p4.add(button8);p4.add(button9);p4.add(button10); frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});} }