五種JAVA GUI布局管理的方式
1. 流式布局(FlowLayout)
定義:
通俗地說(shuō),流式布局就是根據(jù)窗口大小,自動(dòng)改變窗口內(nèi)組件的位置。例如:原窗口大小一行可以容納10個(gè)BUTTON,但將窗口縮小后,每行僅能容納5個(gè)BUTTON,此時(shí)原先的10個(gè)BUTTON中的五個(gè)就會(huì)自動(dòng)排列到下一行。
示例:(省略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)建一個(gè)窗口 frame.setLayout(new FlowLayout(FlowLayout.LEFT)); //將窗口布局設(shè)置為流式布局,并設(shè)置向左對(duì)齊 Button button1 = new Button("button1"); //創(chuàng)建若干個(gè)按鈕 Button button2 = new Button("button2"); Button button3 = new Button("button3"); Button button4 = new Button("button4"); Button button5 = new Button("button5"); frame.add(button1); //將按鈕添加進(jìn)窗口中 frame.add(button2); frame.add(button3); frame.add(button4); frame.add(button5); frame.setBounds(200,200,500,500); //設(shè)置窗口的位置與大小 frame.setVisible(true); //設(shè)置窗口可見(jiàn)性 frame.addWindowListener(new WindowAdapter() { //事件監(jiān)聽(tīng):關(guān)閉窗口 @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } }
2. 東西南北中布局(BorderLayout)
定義:
東西南北中布局,顧名思義。將窗口分為東西南北中四個(gè)“塊兒”,也可以稱(chēng)作上下左右中布局,便于理解。
示例:(省略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. 表格式布局
定義:
將窗口拆分為若干個(gè)表格(拆分為自己需要的表格),再往里添加組件。
示例:
GUI經(jīng)常使用的“登錄”、“注冊(cè)”界面
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("默認(rèn)是:"+ Charset.defaultCharset().name()); Frame frame = new Frame("表格布局"); frame.setLayout(new java.awt.GridLayout(4,1)); //設(shè)置行列數(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沒(méi)有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. 我不要布局!??!
當(dāng)設(shè)置 frame.setLayout(null) ;時(shí),可以使用給panel設(shè)置坐標(biāo)的方式控制布局,更具靈活性!
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一個(gè)窗口出來(lái) Panel panel = new Panel(); //new一個(gè)面板 Panel panel1 = new Panel(); //new一個(gè)面板 Panel panel2 = new Panel(); //new一個(gè)面板 frame.setLayout(null); //設(shè)置布局為空 frame.setBounds(200,200,500,500); //設(shè)置窗口位置大小 panel.setBounds(20,15,460,50); //設(shè)置第一個(gè)面板 panel.setBackground(new Color(253, 228,1)); //設(shè)置面板顏色 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布局管理的方式的詳細(xì)內(nèi)容,更多關(guān)于JAVA GUI布局的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- java GUI實(shí)現(xiàn)加法計(jì)算器
- Java實(shí)現(xiàn)的具有GUI的校園導(dǎo)航系統(tǒng)的完整代碼
- Java圖形界面GUI布局方式(小結(jié))
- java GUI實(shí)現(xiàn)ATM機(jī)系統(tǒng)(3.0版)
- JavaGUI實(shí)現(xiàn)隨機(jī)單詞答題游戲
- Java使用GUI繪制線條的示例
- JAVA基礎(chǔ)-GUI
- IntelliJ IDEA安裝插件阿里巴巴Java開(kāi)發(fā)手冊(cè)(Alibaba Java Coding Guidelines)
- 用GUI實(shí)現(xiàn)java版貪吃蛇小游戲
- java GUI實(shí)現(xiàn)五子棋游戲
- java GUI編程之paint繪制操作示例
- java GUI編程之監(jiān)聽(tīng)操作實(shí)例分析
- java GUI編程之布局控制器(Layout)實(shí)例分析
- java GUI界面初步入門(mén)示例【AWT包】
- Java的帶GUI界面猜數(shù)字游戲的實(shí)現(xiàn)示例
- JAVA圖形界面(GUI)之表格的示例代碼
- java Gui實(shí)現(xiàn)肯德基點(diǎn)餐收銀系統(tǒng)
- 教你用Java GUI實(shí)現(xiàn)文本文件的讀寫(xiě)
相關(guān)文章
基于Java實(shí)現(xiàn)中文分詞系統(tǒng)的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Java語(yǔ)言實(shí)現(xiàn)一個(gè)簡(jiǎn)易的中文分詞系統(tǒng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下2022-07-07java 轉(zhuǎn)發(fā)和重定向區(qū)別及實(shí)例代碼
這篇文章主要介紹了java 轉(zhuǎn)發(fā)和重定向區(qū)別及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-11-11java 數(shù)據(jù)結(jié)構(gòu)單鏈表的實(shí)現(xiàn)
這篇文章主要介紹了java 數(shù)據(jù)結(jié)構(gòu)單鏈表的實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2017-07-07Java實(shí)現(xiàn)獲取圖片和視頻文件的Exif信息
這篇文章將重點(diǎn)為大家介紹一下如何使用Java編程語(yǔ)言結(jié)合metadata-extractor去自動(dòng)獲取全景圖片的Exif信息,獲取照片的拍攝坐標(biāo)信息,感興趣的可以了解一下2022-11-11struts2攔截器_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
如何使用struts2攔截器,或者自定義攔截器。下面通過(guò)實(shí)例代碼給大家分享struts2攔截器的相關(guān)知識(shí),感興趣的朋友參考下吧2017-09-09java SpringBoot自定義注解,及自定義解析器實(shí)現(xiàn)對(duì)象自動(dòng)注入操作
這篇文章主要介紹了java SpringBoot自定義注解,及自定義解析器實(shí)現(xiàn)對(duì)象自動(dòng)注入操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08SpringBoot實(shí)現(xiàn)登錄攔截器超詳細(xì)教程分享
對(duì)于管理系統(tǒng)或其他需要用戶登錄的系統(tǒng),登錄驗(yàn)證都是必不可少的環(huán)節(jié),尤其在?SpringBoot?開(kāi)發(fā)的項(xiàng)目中。本文為大家準(zhǔn)備了超詳細(xì)的SpringBoot實(shí)現(xiàn)登錄攔截器方法,快收藏一波吧2023-02-02