過去將 UI 元件連結資料庫或同步屬性值,需手寫工具類、監聽器與事件處理,繁瑣易錯。Beans Binding (JSR 295) 標準化並簡化此流程:僅需宣告「哪些元件的哪些屬性需同步」,其餘由庫自動處理。NetBeans 6.0 將此功能整合進 GUI Builder,所見即所得完成綁定。
NumberSlider。NumberSliderFrame。jSlider1,Expression 選 value int。
Bind 對話框的 Advanced 分頁提供細粒度控制:
| 屬性 | 說明 |
|---|---|
| Name | 綁定名稱,可程式化引用。 |
| Update Mode | READ_WRITE(雙向)、READ(源→目標)、READ_ONCE(僅初始化)。 |
| Update Source When | 針對 JTextField/JTextArea:ON_FOCUS_LOST、ON_ACTION_OR_FOCUS_LOST。 |
| Ignore Adjusting | 針對 JSlider/JTable/JList:拖動/選取過程中不通知,釋放滑鼠後才更新。 |
| Converter | 自訂類型轉換(實作 org.jdesktop.beansbinding.Converter)。 |
| Validator | 驗證目標值再回寫源(實作 org.jdesktop.beansbinding.Validator)。 |
| Null/Unreadable Source Value | 源為 null 或不可讀時的預設值。 |
customerList)。customer.name)。Beans Binding 為 Swing 元件新增合成屬性以利綁定:
| 元件 | 屬性 | 說明 |
|---|---|---|
| AbstractButton | selected | 按鈕選中狀態 |
| JComboBox | selectedItem | 選中項目 |
| JSlider | value / value_IGNORE_ADJUSTING | 滑桿值 / 拖動時不通知 |
| JList | selectedElement(s) / _IGNORE_ADJUSTING | 選中元素(列表) / 更新時不通知 |
| JTable | selectedElement(s) / _IGNORE_ADJUSTING | 選中行(列表),回傳 Map |
| JTextComponent | text / text_ON_FOCUS_LOST / text_ON_ACTION_OR_FOCUS_LOST | 文字內容 / 失焦時同步 / Action 或失焦時同步 |