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

Eclipse Forms 快速入門:從 Hello World 到表單元件實戰

     編輯:Java 相關知識

Eclipse Forms 是 Eclipse 3.0 引入的公用 API(原為 PDE/Update 內部使用),提供類 HTML 表單的豐富 UI 組件與佈局系統。本文以漸進式範例,從空白表單到超連結、通用控件完整示範。

核心架構

  • FormToolkit:資源管理核心(色彩、超連結群、外觀),**必須 dispose**
  • ScrolledForm:可捲動表單容器,getBody() 取得內容區 Composite
  • GridLayout:類 HTML 表格的佈局管理器
  • 定制控件:Hyperlink、ImageHyperlink、可捲動 Composite 等

階段 1:最小 Hello World

public class FormView extends ViewPart {
    private FormToolkit toolkit;
    private ScrolledForm form;

    public void createPartControl(Composite parent) {
        toolkit = new FormToolkit(parent.getDisplay());
        form = toolkit.createScrolledForm(parent);
        form.setText("Hello, Eclipse Forms"); // 標題列文字
    }
    public void setFocus() { form.setFocus(); }
    public void dispose() {
        toolkit.dispose(); // 釋放資源
        super.dispose();
    }
}

plugin.xml 關鍵配置:

<requires>
    <import plugin="org.eclipse.ui.forms"/> <!-- 必須宣告依賴 -->
</requires>
<extension point="org.eclipse.ui.views">
    <view class="org.xqtu.samples.views.FormView" name="Form Sample" id="FormView"/>
</extension>

階段 2:加入超連結與事件


Composite body = form.getBody();
GridLayout layout = new GridLayout();
body.setLayout(layout);

Hyperlink link = toolkit.createHyperlink(body, "Click here.", SWT.WRAP);
link.addHyperlinkListener(new HyperlinkAdapter() {
    public void linkActivated(HyperlinkEvent e) {
        System.out.println("Link activated!");
    }
});

要點:取得 Body → 設定 GridLayout → Toolkit 建立 Hyperlink → 註冊 Listener。

階段 3:整合通用控件


layout.numColumns = 2; // 兩欄佈局

// 超連結跨兩欄
GridData gd = new GridData();
gd.horizontalSpan = 2;
link.setLayoutData(gd);

// Label + Text 欄位
Label label = toolkit.createLabel(body, "Text field label:");
Text text = toolkit.createText(body, "");
text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
// 關鍵:讓 Text 呈現 FLAT 風格(如 PDE)
text.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);

// CheckBox 跨兩欄
Button checkbox = toolkit.createButton(body,
    "An example of a checkbox in a form", SWT.CHECK);
gd = new GridData();
gd.horizontalSpan = 2;
checkbox.setLayoutData(gd);

// 統一重繪邊框達成 FLAT 外觀
toolkit.paintBordersFor(body);

關鍵技巧:FLAT 風格 Text 控件

預設 Text 為 3D 外觀,需兩步轉為 FLAT:

  1. text.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER); 附加重繪標記
  2. toolkit.paintBordersFor(body); 觸發容器內所有標記控件重繪

為何不直接用 SWT 原生控件?

SWT 控件設計針對視窗/對話框,置於 Form 中會有外觀不一、色彩管理缺失等問題。**FormToolkit 建立的對應控件**能自動適配 Form 主題與色彩系統。

多頁編輯器延伸

每頁為一個 Form 的多頁編輯器(如 PDE manifest/Plugin 編輯器)同樣基於此架構,可透過 FormEditor 實現。

掌握 FormToolkit 資源管理、GridLayout 佈局與 FLAT 風格技巧,即可快速構建專業級 Eclipse 表單介面。

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