我有一個JTable,它有2列。其中一列由JTextField表示,另一列由單選按鈕表示。Java Swing:JTextField不會像預期的那樣失去焦點
模型填充這樣:
model.addRow(new Object[]{radioButton, ""});
相關與JTextField中有這樣的細胞編輯:
class MyCellEditor extends DefaultCellEditor {
MyCellEditor(JTextField textField) {
super(textField);
textField.addFocusListener(new FocusListener() {
public void focusLost(FocusEvent e) {
// do something if focus is lost
}
@Override
public void focusGained(FocusEvent e) {
}
});
}
當我點擊JTextField的電池,我收到了「閃爍「遊標如預期,所以我可以輸入我的文本。無論如何,如果我點擊主窗口中的任何其他地方,我會期待」focusLost(...)「方法已被調用,但只有當我」玩「在窗口中(例如幾次點擊和拖出jtextfield)。
爲什麼在第一次點擊另一個外部組件後組件不會失去焦點?
我已經在過去嘗試過,但他們沒有工作(無論如何,我認爲與stopEditing()你想要:public boolean stopCellEditing())。只有當按下「enter」鍵時纔會調用stopCellEditing()。 – Randomize
@Randomize請參閱我的編輯在這裏,並且不要忘記也重寫cancelCellEditing() – mKorbel
謝謝你的幫助。我運行你的演示代碼,看起來我在點擊文本字段後無法點擊其他任何地方。它是否意味着「最佳實踐」,所以文本字段不會失去焦點,直到輸入值爲止? – Randomize