1. 程式人生 > >Java 的佈局管理器GridBagLayout的使用方法【圖文說明】

Java 的佈局管理器GridBagLayout的使用方法【圖文說明】

GridBagLayout是java裡面最重要的佈局管理器之一,可以做出很複雜的佈局,可以說GridBagLayout是必須要學好的的,

GridBagLayout 類是一個靈活的佈局管理器,它不要求元件的大小相同便可以將元件垂直、水平或沿它們的基線對齊。

每個 GridBagLayout 物件維持一個動態的矩形單元網格,每個元件佔用一個或多個這樣的單元,該單元被稱為顯示區域

下面就通過一個記事本案例去說明GridBagLayout的使用方法。

分析:

帶有箭頭的說明可以拉伸的。

4佔用4個格子,6佔用4個格子。如果設定6可以拉伸了,那麼4也會跟著拉伸。

但是如果設定4拉伸,那麼7所在的列也可以拉伸,所以4不能設定拉伸。我們應該設定4是跟隨6進行拉伸。

灰色的線是為了看清佈局的大概,元件佔用的格子數。

執行時的顯示效果

import java.awt.*;
import javax.swing.*;

public class GridBagDemo extends JFrame {
    public static void main(String args[]) {
        GridBagDemo demo = new GridBagDemo();
    }

    public GridBagDemo() {
        init();
        this.setSize(600,600);
        this.setVisible(true);
    }
    public void init() {
        j1 = new JButton("開啟");
        j2 = new JButton("儲存");
        j3 = new JButton("另存為");
        j4 = new JPanel();
        String[] str = { "java筆記", "C#筆記", "HTML5筆記" };
        j5 = new JComboBox(str);
        j6 = new JTextField();
        j7 = new JButton("清空");
        j8 = new JList(str);
        j9 = new JTextArea();
     j9.setBackground(Color.PINK);//為了看出效果,設定了顏色
        GridBagLayout layout = new GridBagLayout();
        this.setLayout(layout);
        this.add(j1);//把元件新增進jframe
        this.add(j2);
        this.add(j3);
        this.add(j4);
        this.add(j5);
        this.add(j6);
        this.add(j7);
        this.add(j8);
        this.add(j9);
        GridBagConstraints s= new GridBagConstraints();//定義一個GridBagConstraints,
        //是用來控制新增進的元件的顯示位置
        s.fill = GridBagConstraints.BOTH;
        //該方法是為了設定如果元件所在的區域比元件本身要大時的顯示情況
        //NONE:不調整元件大小。
        //HORIZONTAL:加寬元件,使它在水平方向上填滿其顯示區域,但是不改變高度。
        //VERTICAL:加高元件,使它在垂直方向上填滿其顯示區域,但是不改變寬度。
        //BOTH:使元件完全填滿其顯示區域。
        s.gridwidth=1;//該方法是設定元件水平所佔用的格子數,如果為0,就說明該元件是該行的最後一個
        s.weightx = 0;//該方法設定元件水平的拉伸幅度,如果為0就說明不拉伸,不為0就隨著視窗增大進行拉伸,0到1之間
        s.weighty=0;//該方法設定元件垂直的拉伸幅度,如果為0就說明不拉伸,不為0就隨著視窗增大進行拉伸,0到1之間
        layout.setConstraints(j1, s);//設定元件
        s.gridwidth=1;
        s.weightx = 0;
        s.weighty=0;
        layout.setConstraints(j2, s);
        s.gridwidth=1;
        s.weightx = 0;
        s.weighty=0;
        layout.setConstraints(j3, s);
        s.gridwidth=0;//該方法是設定元件水平所佔用的格子數,如果為0,就說明該元件是該行的最後一個
        s.weightx = 0;//不能為1,j4是佔了4個格,並且可以橫向拉伸,
        //但是如果為1,後面行的列的格也會跟著拉伸,導致j7所在的列也可以拉伸
        //所以應該是跟著j6進行拉伸
        s.weighty=0;
        layout.setConstraints(j4, s)
        ;s.gridwidth=2;
        s.weightx = 0;
        s.weighty=0;
        layout.setConstraints(j5, s);
        ;s.gridwidth=4;
        s.weightx = 1;
        s.weighty=0;
        layout.setConstraints(j6, s);
        ;s.gridwidth=0;
        s.weightx = 0;
        s.weighty=0;
        layout.setConstraints(j7, s);
        ;s.gridwidth=2;
        s.weightx = 0;
        s.weighty=1;
        layout.setConstraints(j8, s);
        ;s.gridwidth=5;
        s.weightx = 0;
        s.weighty=1;
        layout.setConstraints(j9, s);
    }
    JButton j1;
    JButton j2;
    JButton j3;
    JPanel j4;
    JComboBox j5;
    JTextField j6;
    JButton j7;
    JList j8;
    JTextArea j9;
}


相關推薦

Java佈局管理GridBagLayout的使用方法圖文說明

GridBagLayout是java裡面最重要的佈局管理器之一,可以做出很複雜的佈局,可以說GridBagLayout是必須要學好的的, GridBagLayout 類是一個靈活的佈局管理器,它不要求元件的大小相同便可以將元件垂直、水平或沿它們的基線對齊。 每個 Gr

Java基本功練習十七GUI(圖形使用者介面基礎基本概念及其使用、三種佈局管理實現同樣的框架練習

為Java GUI程式設計而設計的API是應用面向物件原理的絕佳範例。 本博文主要講解 第一,介紹Java GUI程式設計的基礎知識。 第二,它使用GUI演示面向物件程式設計。 尤其是將介紹Java GUI API的框架結構,討論GUI元件及元件之間的相互關係、容器和佈局管

java佈局管理(轉學習用)

setLayout(佈局物件);  宣告佈局格式的方式   如:<span style="font-size:14px;">setLayout(new FlowLayout());</span>  1. FlowLayout佈局  FlowLayout

Java 的布局管理GridBagLayout的使用方法圖文說明

IV layout png .html IT 復制代碼 不改變 this demo https://www.cnblogs.com/taoweiji/archive/2012/12/14/2818787.html GridBagLayout是java裏面最重要的布局

Java(39)_GridLayout佈局管理

   package MYSQK.example01; import java.awt.*; public class example01 { public static void main(String[] args){ // 設定窗體名稱 F

Java(41)_卡片佈局管理

package MYSQK.example01; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter

java swing 常用的三種佈局方式:邊界佈局、流佈局、網格佈局管理

作者:firstmiki 來源:firstmiki的部落格 著作權歸作者所有,轉載請聯絡作者獲得授權。 這篇博文僅僅簡單介紹了三種常見的佈局管理器,都是一些簡單應用; 一、 邊界佈局管理器(FlowLayout) /* * 功能:演示邊界佈局管理器:元件的位

Java中BorderLayout佈局管理的兩種排列實現方式

    java中Frame類預設的佈局管理器為BorderLayout,其主要是將Frame視窗分為東西南北中五個區域,每個區域僅限於放一個元件,如加入多個,前免得會被覆蓋,解決方法為:可以在一個區域中加入文字框Panel,在Panel中可以加入其他的元件。如果不指定加入的

Java中GUI簡介、AWT概述、以及佈局管理(流式佈局管理、邊界佈局管理、網格佈局管理、網格包佈局管理、卡片佈局管理

1 GUI簡介   GUI的全稱是Graphical User Interface,即圖形使用者介面。顧名思義,就是應用程式提供給使用者操作的圖形介面,包括視窗、選單、按鈕、工具欄和其他各種使用者介面元素。Java中針對GUI設計提供了豐富的類庫,這些類分別位

Java 圖形使用者介面(GUI)佈局管理

元件不能單獨存在,必須放置於容器中,元件在容器中的位置和尺寸是由佈局管理器來決定的 FlowLayout(流式佈局管理器) BoderLayout(邊界佈局管理器) GridLayout(網格佈局管理器) GridBagLayout(網格包佈局管理器) CardLa

Java圖形化介面設計——佈局管理之null佈局(空佈局

    一般容器都有預設佈局方式,但是有時候需要精確指定各個組建的大小和位置,就需要用到空佈局。          操作方法: 1)       首先利用setLayout(null)語句將容器的佈局設定為null佈局(空佈局)。 2)       再呼叫元件的setB

Java圖形化介面設計——佈局管理之CardLayout(卡片佈局

卡片佈局能夠讓多個元件共享同一個顯示空間,共享空間的元件之間的關係就像一疊牌,元件疊在一起,初始時顯示該空間中第一個新增的元件,通過CardLayout類提供的方法可以切換該空間中顯示的元件。 1、  CardLayout類的常用建構函式及方法 2、  使用C

Java圖形化介面設計——佈局管理

學習參考博文:https://blog.csdn.net/liujun13579/article/details/7771191 java雖然可以支援以畫素為單位對元件進行精確定位,但是其在不同的系統中顯示有差異,為此java提供了佈局管理器,使得編寫的圖形介

java使用佈局管理製作使用者登入介面

<span style="font-size:18px;">/* * 使用者登入介面 * */ package swing; import java.awt.*; import jav

java中流式佈局管理(Flowlayout)的演示

/**  * 2018.8.8  * 作者:小孟魚  * 功能:流式佈局管理器(Flowlayout)的演示  */ package com.gui; import java.awt.FlowLayout; import javax.swing.JButton; impo

二十九、Java圖形化介面設計——佈局管理之FlowLayout(流式佈局

         前文講解了JFrame、JPanel,其中已經涉及到了空佈局的使用。Java雖然可以以畫素為單位對元件進行精確的定位,但是其在不同的系統中將會有一定的顯示差異,使得顯示效果不盡相同,為此java提供了佈局管理器,以使編寫的圖形介面具有良好的平臺無關性。

Java圖形化介面設計——佈局管理之GridLayout(網格佈局) 之計算器

程式碼如下: import java.awt.*; import javax.swing.*; public class GridFrame extends JFrame { // 定義

跟我學JAVA(5)圖形化介面設計——佈局管理之FlowLayout(流式佈局

一、佈局管理器所屬類包 所屬類包 佈局管理器名稱 說明 Java.awt FlowLayout(流式佈局) 元件按照加入的先後順序按照設定的對齊方式從左向右排列,一

java Swing佈局管理GridBagLayout佈局

GridBagLayout以表格形式佈置容器內的元件,將每個元件放置在每個單元格內,而一個單元格可以跨越多個單元格合併成一個單元格,即多個單元格可以組合成一個單元格,從而實現元件的自由佈局。 GridBagLayout是一個靈活的佈局管理器,部件如果想加入其中需藉助Grid

java,applet 容器、元件和佈局管理

10.2.1 容器   AWT容器分為兩類:外部容器和內部容器。其中,外部容器一般會獨立存在,例如Frame類;而內部容器則會巢狀在外部容器內部使用,例如Panel類。容器的層次結構如圖10-2所示。         圖10-2 AWT容器的層次結構   其中兩個最