JTable自定义单元格渲染器焦点问题

Vig*_*ran 4 java user-interface swing jtable tablecellrenderer

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

在此输入图像描述

看起来不错.但问题是我们必须输入值并且必须点击"ENTER".在该图像中,我输入了密码,但未按Enter键.因此,如果我单击"保存并关闭"按钮,它将显示密码字段为空的错误.

以前我在JTabbedPane下只使用了JTextFields和JPasswordFields,效果很好.当我不得不添加越来越多的东西时,我把它改成了这样的表格.

现在我已经贴了一个标签让人们知道他们应该点击进入..这不太好.另一个大问题.在Nimbus的Atleast外观和感觉,我们得知这个领域仍然是焦点.在Windows系统外观中,无论字段是否聚焦,都没有太多明显的区别.

在此输入图像描述

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

Nei*_*fen 7

所以你的问题是,你还在编辑单元格.因此,您必须停止编辑,然后更改单元格.

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


kle*_*tra 6

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

table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
Run Code Online (Sandbox Code Playgroud)