首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

SWT/JFace 入門指南:Widget 基礎與常用控件速覽

     編輯:Java 相關知識

Widget 是 SWT 所有 UI 元素的根基,Control 繼承自 Widget,是大多數可視控件的父類。本文梳理 Widget 共性 API、建立/尺寸/位置/可見性控制,並介紹 Label、Text、Button 三大基礎控件用法。

Widget 核心共性 API

  • 資源釋放:dispose() 遞歸釋放底層 OS 資源;isDisposed() 判斷狀態。只需對最外層(如 Display)呼叫 dispose()。
  • 樣式與顯示:getStyle() 取得建構時樣式位;getDisplay() 取得所屬 Display。
  • 使用者資料掛載:setData(key, value) / getData(key) 任意附加資料,跨模組傳遞上下文極實用。

控件建立、尺寸與位置

// 幾乎所有控件構造函數簽名:new WidgetType(parent, style)
Text text = new Text(shell, SWT.CENTER | SWT.BORDER);

// 手動設定尺寸/位置
text.setBounds(10, 10, 200, 30); // x, y, width, height
// 或分別設定
text.setLocation(10, 10);
text.setSize(200, 30);

// 自動計算首選尺寸(需先設定內容)
label.setText("動態文字");
label.pack(); // 自動調整為恰好容納文字的大小

可見性、啟用狀態與提示

  • setVisible(boolean):顯示/隱藏
  • setEnabled(boolean):啟用/禁用(禁用不響應使用者操作)
  • setToolTipText(String):懸停提示文字

三大基礎控件詳解

Label:靜態文字/圖片/分隔線

// 文字標籤,對齊方式
Label label1 = new Label(shell, SWT.CENTER);
label1.setText("標題");

// 分隔線(水平/垂直)
Label separator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);

Label 效果圖

Text:單行/多行文字輸入

  • 樣式:SWT.SINGLE(預設), SWT.MULTI, SWT.WRAP, SWT.READ_ONLY, SWT.PASSWORD
  • 對齊:SWT.LEFT, SWT.CENTER, SWT.RIGHT
  • 常用操作:insert(), paste(), copy(), setSelection(), selectAll()

Button:一體多面的按鈕家族

同一 Button 類,透過樣式位組合呈現截然不同外觀:

樣式常量外觀備註
SWT.PUSH普通按鈕點擊彈起
SWT.TOGGLE切換按鈕按下保持陷入狀態,再按彈起
SWT.ARROW | SWT.LEFT/RIGHT/UP/DOWN箭頭按鈕指定方向
SWT.CHECK核取方塊可多選
SWT.RADIO單選按鈕同群組互斥
Button push = new Button(shell, SWT.PUSH | SWT.CENTER);
push.setText("普通按鈕");

Button toggle = new Button(shell, SWT.TOGGLE | SWT.LEFT);
toggle.setText("切換按鈕");
toggle.setSelection(true); // 預設按下

Button check = new Button(shell, SWT.CHECK);
check.setText("核取方塊");

Button radio = new Button(shell, SWT.RADIO);
radio.setText("單選按鈕");

Button 各樣式效果

掌握 Widget 基因與核心控件,是構建複雜介面的基石。下一章將深入事件模型,讓靜態介面動起來。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved