我想擴展一些Swing組件並覆蓋與其狀態交互的方法(JComboBox的setSelectedIndex,JCheckBox的setSelected等)。 JCheckBox有問題。我已經覆蓋了setSelected方法,但它似乎並沒有調用當用戶通過UI更改JCheckBox狀態。我可以通過調用方法來更改JCheckBox狀態,但似乎GUI使用另一種方式來更改它的狀態。我怎麼能在我的課堂上發現這個事件? 與其他類的Swing一切正常,所有重寫的方法都能正常工作。javax.swing.JCheckBox setSelected不從GUI調用
public class MyCheckBox extends JCheckBox {
@Override
public void setSelected(boolean selected) {
//Method is not performed when MyCheckBox is clicked
super.setSelected(selected);
}
}
UP: 我做了它具有支持組件包'撤銷/重做的行動。我只是將addUndoableEditListener(UndoableEditListener l)方法添加到所有組件,因此實現隱藏在我的組件中。這就是爲什麼我擴展Swing組件而不是使用動作偵聽器的原因。
我的第一個問題:爲什麼擴展這些組件而不是簡單地使用它們? –
爲什麼你認爲GUI調用這種方法來設置值?如果您想在發生更改時啓動某個操作,則應該使用適當的偵聽器。 – SJuan76
我自己,我會擴展我添加到我的JCheckBox的AbstractAction。 –