【发布时间】:2012-06-02 20:01:10
【问题描述】:
我有一个有 2 列的 JTable。其中一列由 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)。
为什么组件在第一次点击另一个外部组件后没有失去焦点?
【问题讨论】:
标签: java swing focus jtable jtextfield