流式布局 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() { @Override public 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() { @Override public 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() { @Override public 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() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } }