4

我有一张这样的桌子。第二列使用 JTextField 渲染器,第三列使用基于 JPasswordField 的渲染器和编辑器。

在此处输入图像描述

看起来挺好的。但问题是我们必须输入值并且必须点击“ENTER”。在该图像中,我输入了密码,但没有按 Enter。因此,如果我单击“保存并关闭”按钮,它将向我显示密码字段为空的错误。

以前我只在 JTabbedPane 下使用了 JTextFields 和 JPasswordFields,而且效果很好。当我不得不添加越来越多的东西时,我将其更改为这样的表格。

现在我已经贴了一个标签,让人们知道他们应该按 ENTER 键。这不好。另一个大问题。至少在 Nimbus 外观和感觉中,我们知道该领域仍然是焦点。在 Windows 系统外观中,该字段是否被聚焦并没有太大的明显差异。

在此处输入图像描述

当我单击“保存并关闭”按钮时,我需要用户名字段或密码字段来设置它的值。请帮我。

4

2 回答 2

7

所以你的问题是,你仍在编辑单元格。所以你必须停止编辑,然后单元格将被更改。

在您的按钮上,您可以获得正在编辑的单元格,
TableCellEditor cellEditor = table.getCellEditor();
然后您可以停止编辑, 然后您可以保存值
if(cellEditor!=null){
cellEditor.stopCellEditing();
}

于 2011-09-01T06:54:20.773 回答
6

告诉表格在失去焦点时自动提交:

table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
于 2011-09-01T08:24:07.083 回答