如何使 JTable 不可编辑
如何使 JTable
不可编辑?我不希望我的用户能够通过双击单元格中的值来编辑它们。
How to make a JTable
non-editable? I don't want my users to be able to edit the values in cells by double-clicking them.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
您可以重写 isCellEditable 方法并根据需要实现
例如:
或
如果您的 JTable 消失请注意
如果您的
JTable
在您使用此功能时消失,很可能是因为您需要使用DefaultTableModel(Object[][] data, Object[] columnNames)
构造函数。You can override the method isCellEditable and implement as you want
for example:
or
Note for if your JTable disappears
If your
JTable
is disappearing when you use this it is most likely because you need to use theDefaultTableModel(Object[][] data, Object[] columnNames)
constructor instead.只需添加
它对我来说效果很好。
just add
it works fine for me.
您可以使用
TableModel
。定义一个这样的类:
实际上
isCellEditable()
默认情况下是false
,所以你可以省略它。 (请参阅:http://docs.oracle。 com/javase/6/docs/api/javax/swing/table/AbstractTableModel.html)然后使用
JTable
的setModel()
方法。You can use a
TableModel
.Define a class like this:
actually
isCellEditable()
isfalse
by default so you may omit it. (see: http://docs.oracle.com/javase/6/docs/api/javax/swing/table/AbstractTableModel.html)Then use the
setModel()
method of yourJTable
.如果您从一组值自动创建 TableModel(使用“new JTable(Vector, Vector)”),也许从列中删除编辑器会更容易:
没有编辑器,数据将不可编辑。
If you are creating the TableModel automatically from a set of values (with "new JTable(Vector, Vector)"), perhaps it is easier to remove editors from columns:
Without editors, data will be not editable.
我使用了这个并且它有效:它非常简单并且工作正常。
I used this and it worked : it is very simple and works fine.
创建新的 DefaultCellEditor 类:
并使用 setCellEditor :
create new DefaultCellEditor class :
and use setCellEditor :