布局控制器,是用來系統自動分配各個component在window內部是怎么排布的;默" />

java GUI編程之布局控制器(Layout)實例分析

 更新時間:2020-01-22 11:00:18   作者:佚名   我要評論(0)

本文實例講述了java GUI編程之布局控制器(Layout)。分享給大家供大家參考,具體如下:
布局控制器,是用來系統自動分配各個component在window內部是怎么排布的;默

本文實例講述了java GUI編程之布局控制器(Layout)。分享給大家供大家參考,具體如下:

布局控制器,是用來系統自動分配各個component在window內部是怎么排布的;默認為FlowLayout,即挨個排序。FlowLayout是Panel的

instance 1:FlowLayout

import java.awt.*;
public class TestLayout {
 public static void main(String[] args) {
 Frame f = new Frame();
 Button b1 = new Button("ok");
 Button b2 = new Button("open");
 Button b3 = new Button("change");
 f.setBackground(Color.BLUE);
 f.setBounds(100, 100, 300, 300);
 f.setLayout(new FlowLayout());
 f.setResizable(true);
 f.add(b1);
 f.add(b2);
 f.add(b3);
 f.setVisible(true);
 }
}

instance 2:BorderLayout

import java.awt.*;
public class TestBorderLayout {
 public static void main(String[] args) {
 Frame f = new Frame("Border Layout");
 Button bn = new Button("Bn");
 Button bs = new Button("Bs");
 Button be = new Button("Be");
 Button bw = new Button("Bw");
 Button bc = new Button("Bc");
 
// f.add(bw,"West");
// f.add(be,"East");
// f.add(bn,"North");
// f.add(bs,"South");
// f.add(bc,"Center");
// f.setLayout(new BordorLayout());
 f.add(bn,BorderLayout.NORTH);
 f.add(bs,BorderLayout.SOUTH);
 f.add(bw,BorderLayout.WEST);
 f.add(be,BorderLayout.EAST);
 f.add(bc,BorderLayout.CENTER);
 
 f.setSize(200, 200);
 f.setVisible(true);
 }
}

BorderLayout把整個界面劃分為東西南北中五個區域塊;其中BorderLayout.NORTH等是int類型的數據,為一個常量。

instance 3:GridLayout

import java.awt.*;
public class TestGridLayout {
 public static void main(String[] args) {
 Frame f = new Frame();
 Button b1 = new Button("b1");
 Button b2 = new Button("b2");
 Button b3 = new Button("b3");
 Button b4 = new Button("b4");
 Button b5 = new Button("b5");
 Button b6 = new Button("b6");
 f.setLayout(new GridLayout(3,2));
 
 f.add(b1);
 f.add(b2);
 f.add(b3);
 f.add(b4);
 f.add(b5);
 f.add(b6);
 f.pack();
 f.setSize(200, 200);
 f.setVisible(true);
 }
}

注:當調用Layout后,其內部的component的大小和位置由系統(布局管理器自主分配),而無法認為的設計。而pack()方法是用來顯示各個組件的。

instance 4:綜合實例

import java.awt.*;
public class TestedLayout {
 public static void main(String[] args) {
 Frame f = new Frame("GUI");
 f.setLayout(new GridLayout(2,1));
 Panel p1 = new Panel(new BorderLayout());
 Panel p2 = new Panel(new BorderLayout());
 Panel p11 = new Panel(new GridLayout(2,1));
 Panel p22 = new Panel(new GridLayout(2,2));
 Button b1 = new Button("button");
 Button b2 = new Button("button");
 Button b3 = new Button("button");
 Button b4 = new Button("button");
 Button b5 = new Button("button");
 Button b6 = new Button("button");
 Button b7 = new Button("button");
 Button b8 = new Button("button");
 Button b9 = new Button("button");
 Button b10 = new Button("button");
 p1.add(b1,BorderLayout.WEST);
 p1.add(b2,BorderLayout.EAST);
 p2.add(b3,BorderLayout.WEST);
 p2.add(b4,BorderLayout.EAST);
 p11.add(b5);
 p11.add(b6);
 p22.add(b7);
 p22.add(b8);
 p22.add(b9);
 p22.add(b10);
 p1.add(p11,BorderLayout.CENTER);
 p2.add(p22,BorderLayout.CENTER);
 f.add(p1);
 f.add(p2);
 f.setBounds(100, 100, 400, 400);
 f.setVisible(true);
 
 }
}

注:一個new等于創建了一個button對象,分配了一個內存空間。即使是完全相同的button即同樣的大小名稱等,其終究還是哪一個,當其被反復添加時,僅僅是相當于給其換了位置。其和變量不同,并不是單純的復制,而是內存和對象的指向問題。

更多關于java算法相關內容感興趣的讀者可查看本站專題:《Java數據結構與算法教程》、《Java操作DOM節點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》

希望本文所述對大家java程序設計有所幫助。

您可能感興趣的文章:

  • java GUI界面初步入門示例【AWT包】
  • Java的帶GUI界面猜數字游戲的實現示例
  • JAVA圖形界面(GUI)之表格的示例代碼
  • java Gui實現肯德基點餐收銀系統
  • Java GUI編程實現在線聊天室
  • Java GUI實現學生成績管理系統
  • Java GUI制作簡單的管理系統
  • Java GUI編程之貪吃蛇游戲簡單實現方法【附demo源碼下載】
  • JAVA GUI自定義JPanel畫板背景
  • Java的GUI編程之列表和組合框的設計使用
  • java布局管理之CardLayout簡單實例
  • Java 最重要布局管理器GridBagLayout的使用方法

相關文章

  • java GUI編程之布局控制器(Layout)實例分析

    java GUI編程之布局控制器(Layout)實例分析

    本文實例講述了java GUI編程之布局控制器(Layout)。分享給大家供大家參考,具體如下: 布局控制器,是用來系統自動分配各個component在window內部是怎么排布的;默
    2020-01-22
  • Vue設置長時間未操作登錄自動到期返回登錄頁

    Vue設置長時間未操作登錄自動到期返回登錄頁

    Vue設置長時間未操作登錄以后自動到期返回登錄頁 首先我們寫在main.js文件中 import routerUtil from "@/utils/routerutil";//先將js文件在main.js中引入 routerU
    2020-01-22
  • Python @property裝飾器原理解析

    Python @property裝飾器原理解析

    這篇文章主要介紹了Python @property裝飾器原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下 1.通過@p
    2020-01-22
  • spring cloud gateway整合sentinel實現網關限流

    spring cloud gateway整合sentinel實現網關限流

    這篇文章主要介紹了spring cloud gateway整合sentinel實現網關限流,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參
    2020-01-22
  • python基于property()函數定義屬性

    python基于property()函數定義屬性

    這篇文章主要介紹了python基于property()函數定義屬性,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下 正常情
    2020-01-22
  • vue中js判斷長時間不操作界面自動退出登錄(推薦)

    vue中js判斷長時間不操作界面自動退出登錄(推薦)

    需求說明,后臺有做半個小時不請求接口的話返回標識退出登錄,但是要請求接口才行,現在要實現前端用js判斷半個小時不操作界面的話自動跳轉到登錄頁面。 創建一個.j
    2020-01-22
  • 通過實例解析python描述符原理作用

    通過實例解析python描述符原理作用

    這篇文章主要介紹了通過實例解析python描述符原理作用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下 本質上
    2020-01-22
  • ES6學習筆記之新增數據類型實例解析

    ES6學習筆記之新增數據類型實例解析

    本文實例講述了ES6學習筆記之新增數據類型。分享給大家供大家參考,具體如下: 1、數據解構賦值 1、數組的解構賦值 基本用法:let [key1,key2...]=[value1,value2..
    2020-01-22
  • python定義類self用法實例解析

    python定義類self用法實例解析

    這篇文章主要介紹了python定義類self用法實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下 在定義類的
    2020-01-22
  • Go 驗證字符串中是否包含中文(推薦)

    Go 驗證字符串中是否包含中文(推薦)

    發現一個驗證字符串是否包含中文滴時候,一個比正則更好使滴方法,而且是golang 自帶滴驗證。 不需要自己寫正則驗證,代碼如下: package main import ( "fmt"
    2020-01-22

最新評論

买宝宝用品赚钱吗