[英]Netbeans: How do I add a valueChanged listener to a JTable from the “design” GUI builder?
[英]How do I add the same listener to multiple components in the NetBeans GUI Builder
我正在使用NetBeans GUI Builder來創建一個小應用程序。 首先,我要說的是我可以手動編碼所有內容並立即解決這個問題。 但是,我想學習如何使用GUI Builder。 這是我的警告,所有不使用它的建議都會得到一次投票。
話雖如此,我目前的情況是我有幾個JFormattedTextField
,我想在用戶輸入格式無效的數據時顯示錯誤信息。 每種情況下的邏輯都是相同的。 唯一的區別是根據預期的確切格式顯示不同的錯誤消息(即四位數年份,正整數等)。 我想簡單地編寫一個可以為每個文本字段重用的偵聽器。 我為第一個文本框寫了以下方法:
private void formattedTextFieldFocustLost(java.awt.event.FocusEvent evt) {
JFormattedTextField source = (JFormattedTextField)evt.getComponent();
if (!source.isEditValid()) {
// TODO: Need a better error message.
JOptionPane.showMessageDialog(this, "Invalid input.", "Input Error", JOptionPane.ERROR_MESSAGE);
source.requestFocusInWindow();
}
}
方法簽名由NetBeans生成,並從生成的匿名內部類調用,該類擴展了FocusAdapter
。 現在,當我轉到NetBeans中的“設計”視圖並單擊另一個組件的focusLost
事件的組合框時,此方法名稱不會顯示。
我還嘗試創建一個擴展FocusAdapter
的命名內部類。 這也不會出現在事件處理程序組合框中。
如何為我的所有文本字段創建單個方法?
如果您已經編寫了處理程序,請說btnActionPerformed,復制名稱。
在設計視圖中,右鍵單擊要附加處理程序的組件>“屬性”>“事件”>“...”按鈕>“添加”>將現有處理程序名稱粘貼到空白字段中,然后單擊“確定”。
(Netbeans 7.3.1)
創建自己的方法,例如validate():
private void validate(JFormattedTextField source) {
if (!source.isEditValid()) {
// TODO: Need a better error message.
JOptionPane.showMessageDialog(this, "Invalid input.", "Input Error", JOptionPane.ERROR_MESSAGE);
source.requestFocusInWindow();
}
}
然后從您通過GUI編輯器定義的各個偵聽器中調用此方法:
private void formattedTextFieldFocustLost(java.awt.event.FocusEvent evt) {
JFormattedTextField source = (JFormattedTextField)evt.getComponent();
validate(source);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.