JTable行选择而不改变数据

发布于 2024-10-19 12:22:22 字数 119 浏览 1 评论 0原文

你好,我正在做一个大学项目,我的 GUI 中有一个 JTable。我希望用户能够选择行而无法更改表中的数据。我使用两个数组来创建表而不是表模型。谢谢

我不想使用表格模型!!!

Hi Im doing a project for college and have a JTable in my GUI. I want the user to be able to select rows without being able to change the data in the table. I am using two arrays to crate the table not the table model. Thanks

I dont want to use tablemodels!!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

青巷忧颜 2024-10-26 12:22:22

您可以在表模型中实现 isEditable() 方法并返回 false,并且您的表将不可编辑:

public class MyTableModel extends AbstractTableModel{
 public void isEditable(){
   return false;
 }
}

然后您有一个表并将其模型设置为 MyTableModel 对象,例如。

JTable table = new JTable();
table.setModel(new MyTableModel());

额外信息:

AbstractTableModel.isCellEditable(int,int) 默认返回 false,因此您无需重写它即可获得该行为。

该方法的 DefaultTableModel 实现默认返回 true,因此如果您希望使单元格不可编辑,则必须重写该方法。

此答案的资源。

You can implement the isEditable() method in your table model and return false and your table will not be editable:

public class MyTableModel extends AbstractTableModel{
 public void isEditable(){
   return false;
 }
}

Then you have a table and you set its model to a MyTableModel object eg.

JTable table = new JTable();
table.setModel(new MyTableModel());

Extra Information:

AbstractTableModel.isCellEditable(int,int) returns false by default, so you don't need to override it to get that behavior.

The DefaultTableModel implementation of that method returns true by default, so that one must be overriden if you wish to make cells un-editable.

Resource of this answer.

糖粟与秋泊 2024-10-26 12:22:22

您应该通过扩展 AbstractTableModel 或 DefaultTableModel 来定义自己的表模型。只需重写 isCellEditable(int row, int col) 并使其返回 false 即可。

You should define your own table model, by extending AbstractTableModel, or DefaultTableModel. Just override isCellEditable(int row, int col) and make it return false.

天赋异禀 2024-10-26 12:22:22

您将需要覆盖表模型的 isCellEditable() 方法始终返回 false。

You will need to override the table model's isCellEditable() method to always return false.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文