java – 使JTable单元不可编辑
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 使JTable单元不可编辑,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1728字,纯文字阅读大概需要3分钟。
内容图文
![java – 使JTable单元不可编辑](/upload/InfoBanner/zyjiaocheng/761/e87801e552034c6d835404d051e932df.jpg)
当用户双击时,我试图使JTable的所有单元格都不可编辑.我已经阅读了很多论坛帖子,一般的共识是创建一个新的表模型类,扩展DefaultTableModel然后重写方法isCellEditable(int row,int column).我做了所有这些,现在当我运行我的程序(小程序)时,没有任何东西出现在单元格中.注意我这个学期有一个教授不认为applet已经过时了…
表模型的代码:
public class MyTableModel extends DefaultTableModel
{
public boolean isCellEditable(int row, int column) //override isCellEditable
//PRE: row > 0, column > 0
//POST: FCTVAL == false always
{
return false;
}
}
Code in my class: **NOTE** this class extends JPanel
private JScrollPane storesPane;
private JTable storesTable;
Code in the Constructor:
storesTable = new JTable(tableData, COL_NAMES); //tableData and COL_NAMES are passed in
storesTable.setModel(new MyTableModel());
storesPane = new JScrollPane(storesTable);
storesTable.setFillsViewportHeight(true);
add(storesPane, BorderLayout.CENTER);
希望你们中的一些Java大师可以找到我的错误:)
解决方法:
这一行创建了一个新的JTable并在后台隐式创建了一个DefaultTableModel,它保存了JTable所需的所有正确数据:
storesTable = new JTable(tableData, COL_NAMES);
这一行有效地删除了上面隐式创建的表模型,该表模型保存了所有表的数据,并将其替换为不包含任何数据的表模型:
storesTable.setModel(new MyTableModel());
您需要为MyTableModel类提供构造函数,并在该构造函数中调用超级构造函数,并将当前传递给其构造函数中的表的数据传入.
例如.,
public class MyTableModel extends DefaultTableModel {
public MyTableModel(Object[][] tableData, Object[] colNames) {
super(tableData, colNames);
}
public boolean isCellEditable(int row, int column) {
return false;
}
}
然后你可以像这样使用它:
MyTableModel model = new MyTableModel(tableData, COL_NAMES);
storesTable = new JTable(model);
内容总结
以上是互联网集市为您收集整理的java – 使JTable单元不可编辑全部内容,希望文章能够帮你解决java – 使JTable单元不可编辑所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。