欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > GUI编程02-布局管理器

GUI编程02-布局管理器

2024/10/24 13:20:25 来源:https://blog.csdn.net/youmupu/article/details/139583550  浏览:    关键词:GUI编程02-布局管理器

流式布局 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);}});}
}
​

结果展示

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com