JAVA學習Swing章節流佈局管理器簡單學習

来源:http://www.cnblogs.com/biehongli/archive/2016/08/08/5748358.html
-Advertisement-
Play Games

實例運行結果如下 實例運行結果如下 實例運行結果如下 ...


package com.swing;

import java.awt.Container;
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

/**
 * 1:流(FlowLayout)佈局管理器是佈局管理器中最基本的佈局管理器,流佈局管理器在整個容器中
 * 的佈局正如其名,像流一樣從左到右擺放組件,直到占據了這一行的所有空間,然後再向下移動一行。
 * 預設情況下,組件在每一行上都是居中排列的,但是通過設置也可以更改組件在每一行上的排列位置
 * 
 * 2:FlowLayout類中具有三種構造方法
 * alignment參數使用流佈局管理器後組件在每一行的具體擺放位置
 * horizGap參數以像素為單位指定組件之間的水平分割
 * vertGap參數以像素為單位指定組件之間的垂直分割
 * 
 * @author biexiansheng
 *
 */
public class FlowLayoutPosition extends JFrame{

    public FlowLayoutPosition(){
        setTitle("本窗體使用流佈局管理器");//設置窗體標題
        Container container=getContentPane();//初始化容器
        //設置窗體使用流佈局管理器,使組件右對齊,並且設置組件之間的水平間隔,和垂直間隔
        setLayout(new FlowLayout(1,10,10));//new一個構造方法
        //FlowLayout第一個參數設置為0每一行組件將按照左對齊排列
        //FlowLayout第一個參數設置為1每一行組件將按照中間對齊排列
        //FlowLayout第一個參數設置為2每一行組件將按照右對齊排列
        
        for(int i=0;i<10;i++){//在容器中添加10個按鈕
            container.add(new JButton("button"+i));
            //new一個按鈕構造方法,這種使用技巧勤加練習
        }
        setSize(300,200);//設置窗體的大小
        setVisible(true);//設置窗體可視化
        //設置窗體的關閉方式
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    
    public static void main(String[] args) {
        FlowLayoutPosition fl=new FlowLayoutPosition();
        //初始化對象調用構造方法
    }
}

實例運行結果如下

 

 


 

package com.swing;

import java.awt.BorderLayout;
import java.awt.Container;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

/**
 * 1:在預設不指定窗體佈局的情況下,Swing組件的佈局模式是邊界(BorderLayout)
 * 佈局管理器
 * 
 * 2:邊界佈局管理器還可以將容器劃分為東西南北中5個區域,可以將組件加入到這5個區域中
 * 邊界佈局管理器可將標簽放置在窗體中間,並且整個組件占據了窗體的所有的空間
 * 
 * 3:容器調用Container類的add()方法添加組件時可以設置此組件在邊界佈局管理器中的區域
 * 區域的控制可以由BorderLayout類中的成員變數來決定
 * @author biexiansheng
 *
 */
public class BorderLayoutPosition extends JFrame{

    //定義組件擺放位置的數組
    String[] border={BorderLayout.CENTER,BorderLayout.NORTH
            ,BorderLayout.SOUTH,BorderLayout.WEST,BorderLayout.EAST};
    /*1:將佈局以及組件名稱分別放置在數組中,然後設置容器使用邊界佈局管理器
     * 最後在迴圈中將按鈕添加到容器中,並設置組件佈局
     *2:add()方法提供了在容器中添加組件的功能,並同時設置組件的擺放位置 
     * */
    //定義按鈕組件上面的文字ESWN  東南西北    上北下南左西右東
    String[] buttonName={"center button","north 北 button",
            "south 南 button","west 西 button","east 東 button",};
    public BorderLayoutPosition(){//定義一個構造方法 
        setTitle("這個窗體使用邊界佈局管理器");//
        Container container=getContentPane();//定義一個容器
        setLayout(new BorderLayout());//設置容器為邊界佈局管理器
        //setLayout()語法為設置佈局管理器
        
        //在容器中添加按鈕,並設置按鈕佈局
        for(int i=0;i<border.length;i++){
            container.add(border[i],new JButton(buttonName[i]));
        }
        
        //設置窗體的外部屬性
        setSize(350,200);//設置窗體的大小
        setVisible(true);//設置窗體可見
        //設置窗體的關閉方式
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        BorderLayoutPosition bl=new BorderLayoutPosition();
        //實例化對象的時候就調用了構造方法
    }

}

實例運行結果如下


 

package com.swing;

import java.awt.Container;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

/**
 * 1:網格(GridLayout)佈局管理器將容器劃分為網格,所以組件可以按行和列進行排列
 * 在網格佈局管理器中,每一個組件的大小都相同,並且網格中空格的個數由網格的行數和列數決定
 * 如一個兩行兩列的網格能產生4個大小相等的網格,
 * 
 * 2:組件從網格的左上角開始,按照從左到右,從上到下的順序加入到網格中,而且每一個組件都會填滿
 * 整個網格,改變窗體的大小,組件的大小也會隨之改變
 * 
 * 3:網格佈局管理器主要有2個構造方法
 * rows參數代表網格的行數
 * columns參數代表網格的列數,這2個參數只有一個可以為0代表一行或者一列可以排列任意多個組件
 * 參數horizGap指定網格之間的間距,指定網格之間的水平間距
 * 參數vertGap指定網格之間的垂直間距
 * @author biexiansheng
 *
 */
public class GridLayoutPosition extends JFrame{

    public GridLayoutPosition(){//定義一個構造方法
        Container container=getContentPane();//定義一個容器
        
        //設置窗體使用網格佈局管理器,設置了7行3列的網格
        setLayout(new GridLayout(7,3,5,5));//先開始設置佈局管理器
        for(int i=0;i<20;i++){
            container.add(new JButton("button"+i));
        }
        //設置容器的外部結構
        setTitle("這是一個網格佈局管理器的窗體");
        setSize(300,300);//設置窗體的大小
        setVisible(true);//設置窗體的可見
        //設置窗體的關閉方式
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        GridLayoutPosition gl=new GridLayoutPosition();
        //初始化對象時調用構造方法
    }

}

實例運行結果如下


 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 3.2自定義路由事件 為了方便程式中對象之間的通信,通常需要我們自己定義一些路由事件。那麼如何去創建自定義路由事件呢?下麵通過一個例子來說明自定義路由事件的創建。 創建自定義路由事件大體來說分為三個步驟: 首先,定義路由事件與依賴屬性的定義手法極為相似——申明一個由public static rea ...
  • 可空類型、匿名方法和迭代器這三個優美的特性是在C#2.0裡面提出來的。 1、可空類型 當我們在使用資料庫的時候,會發現這樣的一個矛盾點:資料庫的欄位設置是允許為null的,比如日期的欄位,當你想把資料庫表映射為C#中的對象時會發現,DateTime類型在C#語言中是不能為null的! 1.1 簡介 ...
  • 1.簡單解釋:在創建對象時,無論創建多少次,在堆空間上只會申請一次記憶體空間。 2.例子(1): 例子(2): 例子(3): ...
  • 一、介簡 SqlSugar ORM框架一直在升級當中,昨天將EMIT架構進行了重構,讓類型轉換更加智能,EMIT轉換後的性能和原生ADO同水準(以前只是接近),為了提高性能、穩定、有問必答、有需求必改、堅持更新。例如資料庫類型為BIT我們在程式裡面可以使用 INT接收也可以用BOOL接收,不影響一絲 ...
  • 網站優化必做的事情之一,百度ping,主動推送給百度 文章添加時調用百度推送方法 common類庫增加百度ping方法 ...
  • 先上一段最近項目中的代碼,此代碼可以放到自己項目中的dbContext中 EF6中可以覆寫SaveChangesAsync(非同步)或者SaveChanges來實現記錄變化的跟蹤,這其中包括新增、修改、和刪除,dbContext中的屬性ChangeTracker可以跟蹤屬性的變化,即查找實體修改記錄: ...
  • 按照網上的教程寫了一個cURL的小例子,在apache環境下執行,一點反應也沒有,放在IIS環境里就ok的,感覺問題一定出在動態連接庫上,因為配置文件里的php_curl.dll已經打開了,而且在iis上ok; 網上找了一些解決方案: 設置了【環境變數】:phpext,PHPRC;無效 把php_c ...
  • 博客園上傳代碼時拷貝vs裡面的代碼不能直接粘貼,否則空格會不符合要求 去掉空格代碼 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...