1. 流式布局(FlowLayout)
定义:
通俗地说,流式布局就是根据窗口大小,自动改变窗口内组件的位置。例如:原窗口大小一行可以容纳10个BUTTON,但将窗口缩小后,每行仅能容纳5个BUTTON,此时原先的10个BUTTON中的五个就会自动排列到下一行。
示例:(省略panel的使用)
Hashsetpackage 布局管理;import java.awt.*;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class Layout { //流式布局public static void main(String[] args) {Frame frame = new Frame(); //创建一个窗口frame.setLayout(new FlowLayout(FlowLayout.LEFT)); //将窗口布局设置为流式布局,并设置向左对齐Button button1 = new Button("button1"); //创建若干个按钮Button button2 = new Button("button2");Button button3 = new Button("button3");Button button4 = new Button("button4");Button button5 = new Button("button5");frame.add(button1); //将按钮添加进窗口中frame.add(button2);frame.add(button3);frame.add(button4);frame.add(button5);frame.setBounds(200,200,500,500); //设置窗口的位置与大小frame.setVisible(true); //设置窗口可见性frame.addWindowListener(new WindowAdapter() { //事件监听:关闭窗口@Override public void windowClosing(WindowEvent e) {System.exit(0);}});}}
2. 东西南北中布局(BorderLayout)
定义:
东西南北中布局,顾名思义。将窗口分为东西南北中四个“块儿”,也可以称作上下左右中布局,便于理解。
示例:(省略panel的使用)
package 布局管理;import java.awt.*;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class BorderLayout { //东西南北中布局public static void main(String[] args) {Frame frame = new Frame();frame.setLayout(new java.awt.BorderLayout());Button east = new Button("East");east.setBackground(new Color(140, 172, 51));Button west = new Button("West");west.setBackground(new Color(140, 172, 51));Button north = new Button("North");north.setBackground(new Color(38, 222, 135));Button south = new Button("South");south.setBackground(new Color(38, 222, 135));Button center = new Button("Center");frame.add(east, java.awt.BorderLayout.EAST);frame.add(west, java.awt.BorderLayout.WEST);frame.add(north, java.awt.BorderLayout.NORTH);frame.add(south, java.awt.BorderLayout.SOUTH);frame.add(center, java.awt.BorderLayout.CENTER);frame.setBounds(200,200,500,500);frame.setVisible(true);frame.addWindowListener(new WindowAdapter() {@Override public void windowClosing(WindowEvent e) {System.exit(0);}});}}
3. 表格式布局
定义:
将窗口拆分为若干个表格(拆分为自己需要的表格),再往里添加组件。
示例:
GUI经常使用的“登录”、“注册”界面package 布局管理;import javafx.scene.control.PasswordField;import javafx.scene.layout.Pane;import sun.security.util.Password;import java.awt.*;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.nio.charset.Charset;public class GridLayout {public static void main(String[] args) {// System.out.println("file.encoding=" + System.getProperties().getProperty("file.encoding"));// System.out.println("默认是:"+ Charset.defaultCharset().name());Frame frame = new Frame("表格布局");frame.setLayout(new java.awt.GridLayout(4,1)); //设置行列数Panel panel1 = new Panel();frame.add(panel1);Panel panel2 = new Panel();frame.add(panel2);Panel panel3 = new Panel();frame.add(panel3);Panel panel4 = new Panel();frame.add(panel4);Label label = new Label("welcome to *** system");label.setFont(new Font("宋体", Font.PLAIN, 26));Label label1 = new Label("Account: ");TextField textField = new TextField();textField.setColumns(20);Label label2 = new Label("Password: ");TextField textField1 = new TextField(); //AWT没有passwordField textField1.setColumns(20);textField1.setEchoChar('*');Button button = new Button("Login");panel1.add(label);panel2.add(label1);panel2.add(textField);panel3.add(label2);panel3.add(textField1);panel4.add(button);frame.setBounds(200,200,500,250);frame.setVisible(true);frame.addWindowListener(new WindowAdapter() {@Override public void windowClosing(WindowEvent e) {System.exit(0);}});}}
4. 我不要布局!!!
当设置 frame.setLayout(null) ;时,可以使用给panel设置坐标的方式控制布局,更具灵活性!
package AWT;import javafx.scene.layout.Pane;import java.awt.*;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;public class panel {public static void main(String[] args) {Frame frame = new Frame(); //new一个窗口出来Panel panel = new Panel(); //new一个面板Panel panel1 = new Panel(); //new一个面板Panel panel2 = new Panel(); //new一个面板frame.setLayout(null); //设置布局为空frame.setBounds(200,200,500,500); //设置窗口位置大小panel.setBounds(20,15,460,50); //设置第一个面板panel.setBackground(new Color(253, 228,1)); //设置面板颜色panel1.setBounds(20,70,100,415);panel1.setBackground(new Color(0, 71, 254));panel2.setBounds(130,70,350,415);panel2.setBackground(new Color(1,1,1));frame.add(panel); //面板加入到窗口中frame.add(panel1);frame.add(panel2);frame.setVisible(true);frame.addWindowListener(new WindowAdapter() {@Override public void windowClosing(WindowEvent e) {System.exit(0);}}); {}}}
5. 我都要!!!
为了使界面更加美观,可以使用多种布局的嵌套哦!
以上就是五种JAVA GUI布局管理的方式的详细内容,更多关于JAVA GUI布局的资料请关注脚本之家其它相关文章!
您可能感兴趣的文章:java GUI实现加法计算器Java实现的具有GUI的校园导航系统的完整代码Java图形界面GUI布局方式(小结) java GUI实现ATM机系统(3.0版) JavaGUI实现随机单词答题游戏Java使用GUI绘制线条的示例JAVA基础-GUI IntelliJ IDEA安装插件阿里巴巴Java开发手册(Alibaba Java Coding Guidelines)用GUI实现java版贪吃蛇小游戏java GUI实现五子棋游戏java GUI编程之paint绘制操作示例java GUI编程之监听操作实例分析java GUI编程之布局控制器(Layout)实例分析java GUI界面初步入门示例【AWT包】Java的带GUI界面猜数字游戏的实现示例JAVA图形界面(GUI)之表格的示例代码java Gui实现肯德基点餐收银系统教你用Java GUI实现文本文件的读写
