日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Java 图形用户界面(GUI)布局管理器

發布時間:2024/10/8 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 图形用户界面(GUI)布局管理器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

組件不能單獨存在,必須放置于容器中,組件在容器中的位置和尺寸是由布局管理器來決定的

  • FlowLayout(流式布局管理器)
  • BoderLayout(邊界布局管理器)
  • GridLayout(網格布局管理器)
  • GridBagLayout(網格包布局管理器)
  • CardLayout(卡片布局管理器)
  • 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)布局管理器的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。