五種JAVA GUI布局管理的方式
1. 流式布局(FlowLayout)
定義:
通俗地說,流式布局就是根據(jù)窗口大小,自動改變窗口內(nèi)組件的位置。例如:原窗口大小一行可以容納10個BUTTON,但將窗口縮小后,每行僅能容納5個BUTTON,此時原先的10個BUTTON中的五個就會自動排列到下一行。
示例:(省略panel的使用)
Hashset
package 布局管理;
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(); //創(chuàng)建一個窗口
frame.setLayout(new FlowLayout(FlowLayout.LEFT)); //將窗口布局設置為流式布局,并設置向左對齊
Button button1 = new Button("button1"); //創(chuàng)建若干個按鈕
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() { //事件監(jiān)聽:關閉窗口
@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經(jīng)常使用的“登錄”、“注冊”界面
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)); //設置行列數(shù)
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布局管理的方式的詳細內(nèi)容,更多關于JAVA GUI布局的資料請關注腳本之家其它相關文章!
- java GUI實現(xiàn)加法計算器
- Java實現(xiàn)的具有GUI的校園導航系統(tǒng)的完整代碼
- Java圖形界面GUI布局方式(小結)
- java GUI實現(xiàn)ATM機系統(tǒng)(3.0版)
- JavaGUI實現(xiàn)隨機單詞答題游戲
- Java使用GUI繪制線條的示例
- JAVA基礎-GUI
- IntelliJ IDEA安裝插件阿里巴巴Java開發(fā)手冊(Alibaba Java Coding Guidelines)
- 用GUI實現(xiàn)java版貪吃蛇小游戲
- java GUI實現(xiàn)五子棋游戲
- java GUI編程之paint繪制操作示例
- java GUI編程之監(jiān)聽操作實例分析
- java GUI編程之布局控制器(Layout)實例分析
- java GUI界面初步入門示例【AWT包】
- Java的帶GUI界面猜數(shù)字游戲的實現(xiàn)示例
- JAVA圖形界面(GUI)之表格的示例代碼
- java Gui實現(xiàn)肯德基點餐收銀系統(tǒng)
- 教你用Java GUI實現(xiàn)文本文件的讀寫
相關文章
基于Java實現(xiàn)中文分詞系統(tǒng)的示例代碼
這篇文章主要為大家詳細介紹了如何利用Java語言實現(xiàn)一個簡易的中文分詞系統(tǒng),文中的示例代碼講解詳細,感興趣的小伙伴可以嘗試一下2022-07-07
java 數(shù)據(jù)結構單鏈表的實現(xiàn)
這篇文章主要介紹了java 數(shù)據(jù)結構單鏈表的實現(xiàn)的相關資料,需要的朋友可以參考下2017-07-07
java SpringBoot自定義注解,及自定義解析器實現(xiàn)對象自動注入操作
這篇文章主要介紹了java SpringBoot自定義注解,及自定義解析器實現(xiàn)對象自動注入操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
SpringBoot實現(xiàn)登錄攔截器超詳細教程分享
對于管理系統(tǒng)或其他需要用戶登錄的系統(tǒng),登錄驗證都是必不可少的環(huán)節(jié),尤其在?SpringBoot?開發(fā)的項目中。本文為大家準備了超詳細的SpringBoot實現(xiàn)登錄攔截器方法,快收藏一波吧2023-02-02

