当前位置:  开发笔记 > 编程语言 > 正文

使JTable中的单元格可编辑 - 单元格的默认值

如何解决《使JTable中的单元格可编辑-单元格的默认值》经验,为你挑选了1个好方法。

我正在使用Java,我正在尝试使JTable中的单元格可编辑.我的类实现的TableModel和延伸AbstractTableModel上(这样我可以使用的方法fireTableCellUpdated(rowIndex, columnIndex)),我已经实现的方法isCellEditable()setValueAt()我表示表中的单个小区作为类细胞的对象.

现在这是我的问题:单元格已经可编辑了,当我点击它时,光标会出现在单元格中,但是,单元格中还会出现一个字符串,如下所示:Cell@1e63e3d.我删除了这个字符串,并在单元格中放入了我要放置的值,然后单击Enter,它工作正常.但我希望当我点击那里的单元格时什么也不显示,一个空字符串,而不是Cell@1e63e3d.我不知道如何将此空字符串设置为默认值和位置.

我的Cell类存储有关单元格的信息(特征),如单元格的颜色,以及它作为实例变量的值.

如果您需要更多信息,请告诉我.



1> coobird..:

您是否设置了TableCellRendererTableCellEditor你的JTable

对于显示单元格,TableCellRenderer用于从中呈现位置的内容TableModel.默认情况下,它将使用该位置中的toString方法Object,以便解释Cell@1e63e3d在单元格中显示的内容 - 这是在对象toString上调用方法的结果Cell.

通过编写自定义单元格渲染器(实现的类TableCellRenderer),您将能够使用该方法返回Component要用于显示Cell对象的a getTableCellRendererComponent.在您的情况下,您可能希望子类化JLabel实现TableCellRenderer,并将设置标签的内容以反映Cell对象的内容.

至于编辑单元格,从中想要编辑单元格时TableCellEditor接收.在将返回其用于编辑单元格内容(使用)方法.ObjectTableModelJTableTableCellEditorComponentObjectgetTableCellEditorComponent

在你提供的情况下,我认为制作一个JTextField实现TableCellEditor界面的人将能够为你完成这项工作.覆盖时getTableCellEditorComponent,检查您是否有Cell对象的实例(即object instanceof Cell),如果是这种情况,请初始化您JTextField的内容以包含Cell要显示或编辑的对象的内容.

推荐阅读:我发现IBM developerWorks的Swing JTable组件文章中的Rendering单元非常有助于学习如何处理JTables及其单元格渲染和编辑功能.特别是,创建自定义渲染器和编辑表格单元部分可能是有意义的.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有