流布局管理器FlowLayout、边界布局管理器BorderLayout、网格布局管理器GridLayout
代码实例:
一 . TestFlowlayout.javapackage MyPanel; import java.awt.*; 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"); Button button4 = new Button("button4"); //设置为流式布局 frame.setLayout(new FlowLayout(FlowLayout.CENTER));//默认居中 frame.setSize(400,400); //添加已创建的按钮 frame.add(button1); frame.add(button2); frame.add(button3); frame.add(button4); frame.setVisible(true); } }
运行结果:
二. TestBoderlayout.java
package MyPanel; import java.awt.*; public class TestBoderlayout { public static void main(String[] args) { frame frame = new frame("TestBoderlayout"); 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); } }
运行结果:
三.TestGridlayout.java
package MyPanel; import java.awt.*; public class TestGridlayout { public static void main(String[] args) { frame frame = new frame("TestGridlayout"); Button btn1 = new Button("btn1"); Button btn2 = new Button("btn2"); Button btn3 = new Button("btn3"); Button btn4 = new Button("btn4"); Button btn5 = new Button("btn5"); frame.setLayout(new GridLayout(3,2)); frame.add(btn1); frame.add(btn2); frame.add(btn3); frame.add(btn4); frame.add(btn5); frame.setSize(400,400); // frame.pack(); //当执行pack上面的setSize会被覆盖 // 作用:调整窗口的大小,使其适应组件的大小和布局 frame.setVisible(true); } }
运行结果:
相关资料: Java的三种布局管理器
复杂的界面采用单一的布局管理器完成比较困难,一般(流布局管理器、边界布局管理器、网格布局管理器)三者相接合方式去完成
综合实例 , 实现一个嵌套的界面package MyPanel; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class Exercises { public static void main(String[] args) { //主 frame frame frame = new frame("MyExercises"); frame.setSize(400,400); frame.setLocation(300,400); // frame.setBackground(Color.BLACK); frame.setVisible(true); frame.setLayout(new GridLayout(2,1)); //列表布局 两行一列 //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)); //先将上半部分的两个左右方块完成 p1.add(new Button("East-1"),BorderLayout.EAST); p1.add(new Button("West-1"),BorderLayout.WEST); p2.add(new Button("p2-btn-1")); p2.add(new Button("p2-btn-2")); //布局下半部分 p3.add(new Button("East-2"),BorderLayout.EAST); p3.add(new Button("West-2"),BorderLayout.WEST); //中间四个 for (int i = 0; i < 4; i++) { p4.add(new Button("for"+i)); } p3.add(p4,BorderLayout.CENTER); p1.add(p2,BorderLayout.CENTER); frame.add(p1); frame.add(p3); //监听事件 ,实现窗口的关闭; frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } }输出结果界面
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)