『壹』 java 布局管理器 是怎麼一回事
不管按鈕還是文本框都會有自己默認的大小設置方式,所有你的布局不會產出預計的結果。如下圖:
按照你上面布局,理論上會出現圖1布局,但是實際是圖2布局方式。因為按鈕會有自己的默認大小設置方式,當組件(按鈕)的顯示區域小於它所請求的顯示區域的大小時,可用GridBagConstraints的fill屬性設置布局方式。
即:在第13行和14行之間添加代碼:c.fill=GridBagConstraints.BOTH;結果就會出現圖1所示的效果。
『貳』 Java中如何設置在JFrame中控制項的位置和大小
Java中通過布局管理器(LayoutManager)來布局控制項。
常見的布局管理器如下:
BorderLayout:Frame和Dialog的默認布局管理器。其把面板分為上北、下南、左西、右東和中間,5個部分,在未指定控制項大小的情況下,被加入的控制項將會隨著內容大小自動伸縮,隨著窗口的放大縮小也相應的產生伸縮。
FlowLayout :按順序布局控制項。所有控制項按照流水一樣排列,若當前行放不下了,則自動排到下一行。按子控制項的大小(getPreferedSize())在當前面板布局。
GridLayout :網格布局。該布局將所有控制項按從左到右,從上到下的形式把控制項以網格的形式排列出來。子控制項會填滿整個面板。
GridBagLayout :網格包布局。能布局復雜界面,但其使用也很復雜,一般不用。
null布局:即將布局管理器設置為null。此時,通過調用子控制項的setBounds方法進行布局。
其他布局管理器。以上是Java內置的常用布局管理器,還有一些非官方的好用布局管理器:XYLayout(按大小和位置布局)、VerticalFlowLayout (縱向流水布局)、TableLayout(表格布局)。
一般的Java程序布局方式:用FlowLayout布局一些按鈕,用BorderLayout嵌套多個面板。
『叄』 java GUI布局管理器---FlowLayout流動布局管理器
FlowLayout 是一種簡單的布局管理器,與 MATLAB 中的 GUI 設計類似。其主要用途在於將組件按照添加順序從左向右放置,直到邊界,之後組件自動移到下一行。
FlowLayout 的構造方法為 FlowLayout(int align, int hgap, int vgap),允許指定組件的對齊方式和水平、垂直間距。若不提供參數,默認組件居中對齊,水平、垂直間距默認為5個單位。
參數 align 決定組件在每行中的對齊方式,可選擇左對齊(FlowLayout.LEFT)、右對齊(FlowLayout.RIGHT)或居中對齊(FlowLayout.CENTER)。hgap 和 vgap 分別設定組件之間的水平和垂直間距。
下面是一個詳細案例,展示了如何使用 FlowLayout 來布局按鈕組件。
通過導入必要的 Java AWT 和 Swing 庫,定義一個名為 FlowLayoutTemp 的公共類。
在該類中,創建一個名為 creatshowGUI 的靜態方法,用於創建並顯示使用 FlowLayout 的窗體。
在 creatshowGUI 方法中,創建一個名為 FlowLayout 的 JFrame 窗體,並設置其標題為 "FlowLayout"。使用 FlowLayout 構造方法設置組件的對齊方式為左對齊,水平間距為20,垂直間距為30。
接著,設置窗體的大小和顯示位置,並將多個按鈕組件添加到窗體中。
最後,使窗體可見,並設置關閉事件為當窗口關閉時程序退出。
在 main 方法中,調用 SwingUtilities 工具類的 invokeLater 方法,傳入 creatshowGUI 方法,以顯示 GUI。
運行此代碼,將看到一個使用 FlowLayout 布局的窗口,包含多個按鈕組件,排列方式符合設計要求。
通過本案例,可以直觀地了解如何使用 FlowLayout 來實現組件的流動布局管理。