[英]Custom cell editor can't accommodate text in Nimbus Look and Feel
我想验证用户在表格单元格中的输入,并且使用Nimbus外观。 以下是验证整数输入的单元格编辑器的代码: WholeNumberField它扩展了JTextField
并添加了输入验证。
当我为列设置它时,它可以正常工作,但是不能容纳文本:
当我使用默认单元格编辑器时,一切看起来都很好:
该编辑器如何看起来像默认编辑器?
WholeNumberField是旧代码。 如果您确实要进行自定义验证,则应该使用DocumentFilter 。
但是,在这种情况下,无需创建自定义编辑器。 JTable已经支持编辑器来验证数字。 您只需要重写JTable或TableModel的isCellEditable(...)
方法即可返回Integer.Class
,然后将使用适当的渲染器和编辑器。
编辑:刚注意到我的建议是不正确的。
getColumnClass(...)
以返回Integer.class,以便可以使用适当的渲染器/编辑器。 isCellEditable(...)
方法用于确定是否可以编辑单元格。 我发现将以下内容放入“自定义单元格编辑器”构造函数中可以为我解决问题:
Border border = UIManager.getBorder("Table.cellNoFocusBorder");
if (border != null) {
setBorder(border);
}
我的编辑器扩展了JTextField。
如果从getDefaultEditor(Object.class)
获得TableCellEditor
的实例 ,则它应该已经是一个可以验证的组件,如示例中所示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.