繁体   English   中英

自定义单元格编辑器无法在Nimbus外观中容纳文本

[英]Custom cell editor can't accommodate text in Nimbus Look and Feel

我想验证用户在表格单元格中的输入,并且使用Nimbus外观。 以下是验证整数输入的单元格编辑器的代码: WholeNumberField它扩展了JTextField并添加了输入验证。

当我为列设置它时,它可以正常工作,但是不能容纳文本:

文字剪切

当我使用默认单元格编辑器时,一切看起来都很好:

正常外观

该编辑器如何看起来像默认编辑器?

WholeNumberField是旧代码。 如果您确实要进行自定义验证,则应该使用DocumentFilter

但是,在这种情况下,无需创建自定义编辑器。 JTable已经支持编辑器来验证数字。 您只需要重写JTable或TableModel的isCellEditable(...)方法即可返回Integer.Class ,然后将使用适当的渲染器和编辑器。

编辑:刚注意到我的建议是不正确的。

  1. 您需要重写getColumnClass(...)以返回Integer.class,以便可以使用适当的渲染器/编辑器。
  2. 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM