當前位置:
首頁 >
Java 图形用户界面(GUI)布局管理器
發布時間:2024/10/8
36
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Java 图形用户界面(GUI)布局管理器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
組件不能單獨存在,必須放置于容器中,組件在容器中的位置和尺寸是由布局管理器來決定的
1.FlowLayout
容器會將組件按照添加順序,從左到右放置,到達邊界時,自動換行
import java.awt.*;public class Example {public static void main(String[] args) {//創建一個窗體final Frame f=new Frame("Flowlayout");//設置布局管理器為FlowLayout,所有組件左對齊,水平間距20,垂直間距30f.setLayout(new FlowLayout(FlowLayout.LEFT,20,30));f.setSize(520,400);//設置窗體大小f.setLocation(200, 300);for(int i=1;i<30;i++)f.add(new Button("Button"+i));f.setVisible(true);} }2.BorderLayout
將容器劃分為5個區域,分別是【東】EAST,【南】SOUTH,【西】WEST,【北】NORTH,【中】CENTER;
如果不指定添加區域,默認放到CENTER區,每個區域只能放置一個組件
import java.awt.*;public class Example {public static void main(String[] args) {//創建一個窗體Frame f=new Frame("BorderLayout");//設置布局管理器為BorderLayoutf.setLayout(new BorderLayout());f.setSize(520,400);//設置窗體大小f.setLocation(200, 300);//顯示位置f.setVisible(true);//設置可見Button[] but=new Button[6];//創建5個按鈕,分別填充在borderLayout的5個區域Button but1 =new Button("EAST");Button but2 =new Button("SOUTH");Button but3 =new Button("WEST");Button but4 =new Button("NORTH");Button but5 =new Button("CENTER");f.add(but1,BorderLayout.EAST);f.add(but2,BorderLayout.SOUTH);f.add(but3,BorderLayout.WEST);f.add(but4,BorderLayout.NORTH);f.add(but5,BorderLayout.CENTER);f.add(new Button("每個區域只能放置一個組件"), BorderLayout.CENTER);} }3.GridLayout
將容器分為N行M列的網格,從左到右每個網格放一個組件,所有組件寬高相同
import java.awt.*;public class Example {public static void main(String[] args) {//創建一個窗體Frame f=new Frame("GridLayout");//設置布局管理器為BorderLayoutf.setLayout(new GridLayout(3,5,10,30));//設置網格:行為3,列為5,,水平間距10,垂直間距30f.setSize(500,300);f.setLocation(400, 300);f.setVisible(true);for(int i=0;i<15;i++) {f.add(new Button("Button"+i));}} }4.Grid BagLayout
最靈活、最復雜的布局管理器,允許組件大小自定義,允許一個組件跨越一個或多個網格
import java.awt.*; class Layout extends Frame{public Layout(String title) {GridBagLayout layout =new GridBagLayout();GridBagConstraints c=new GridBagConstraints();//布局約束條件this.setLayout(layout);c.fill=GridBagConstraints.BOTH;//設置組件橫向縱向可以拉伸c.weightx=1;//設置橫向權重為1c.weighty=1;//設置縱向權重為1this.addComponent("button1", layout, c);this.addComponent("button2", layout, c);this.addComponent("button3", layout, c);//添加的組件是本行最后一個組件c.gridwidth=GridBagConstraints.REMAINDER;this.addComponent("button4", layout, c);c.weightx=0;c.weighty=0;this.addComponent("button5", layout, c);c.gridwidth=1;//設置組件跨一個網格this.addComponent("button6", layout, c);//添加的組件是本行最后一個組件c.gridwidth=GridBagConstraints.REMAINDER;this.addComponent("button7", layout, c);c.gridheight=2;c.gridwidth=1;c.weightx=2;c.weighty=2;this.addComponent("button8", layout, c);c.gridwidth=GridBagConstraints.REMAINDER;c.gridwidth=1;//設置組件跨一個網格this.addComponent("button9", layout, c);this.addComponent("button10", layout, c);this.setTitle(title);this.pack();this.setVisible(true);}//增加組件的方法private void addComponent(String name,GridBagLayout layout,GridBagConstraints c) {Button bt=new Button(name);layout.setConstraints(bt, c);//設置約束條件c和按鈕關聯this.add(bt);//增加按鈕} } public class Example {public static void main(String[] args) {new Layout("GridBagLayout");} }5.Card Layout
在操作程序中,經常會遇到通過選項卡來切換程序中的界面,這些界面就像一張張卡片;可以使多個界面共享一個顯示空間,某一時刻只有一個界面可見
6.不使用布局管理器
import java.awt.*;public class Example {public static void main(String[] args) {Frame f=new Frame("Frame without Layout");f.setLayout(null);//取消frame的布局管理器f.setSize(300,150);f.setVisible(true);Button button1=new Button("press");Button button2=new Button("pop");button1.setBounds(40,60,100,30);//左上角的X和Y坐標、組件的長和寬button2.setBounds(150,90,110,30);f.add(button1);f.add(button2);} }?
總結
以上是生活随笔為你收集整理的Java 图形用户界面(GUI)布局管理器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 图形用户界面(GUI)java
- 下一篇: Java 图形用户界面 AWT事件处理