我正在为我的JTable列使用以下代码进行编辑/取消编辑,但是当用户重新排列列时,以下代码不起作用,代码的SSCCE如下:
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class Main {
public static void main(String[] argv) throws Exception {
TableModel model = new DefaultTableModel() {
public boolean isCellEditable(int rowIndex, int mColIndex) {
boolean flag = false;
if (isEdit == true) {
if ((vColIndex == tblItem.getColumn("Design").getModelIndex())
|| (vColIndex == tblItem.getColumn("ChangedCategory").getModelIndex())
|| (vColIndex == tblItem.getColumn("Amount").getModelIndex())) {
flag = false;
} else {
flag = true;
}
} else {
flag = false;
}
return flag;
}
};
JTable table2 = new JTable(model);
}
}
请注意,模型索引和视图索引 不
相等。如前所述这里,
JTable
提供了从模型坐标转换为视图坐标-
convertColumnIndexToView
和convertRowIndexToView
-的方法,以及从视图坐标转换为模型坐标-
convertColumnIndexToModel
和的方法convertRowIndexToModel
。
本教程部分讨论了
对
行进行
排序和过滤
,但是原理也适用于列。没有完整的示例,很难确定。
问题内容: 有没有什么好书或网站可以帮助您创建一个?我想使一栏可编辑。我想实际上将继承的组件(在这里创建的组件)放到表列之一中,而不是仅仅基于它是可编辑的字段来放置表。 我有《JFC Swing教程第二版》 一书,但我只是想知道是否还有其他例子可以研究,并学习如何更好地处理表格。这本书似乎只是将Java的“ trail”在线上并放在书中。 我正在重新阅读这些东西,只是好奇是否有人发现了一些可以帮助
我试图创建一个“简单”的JTable,它使用一个TableModel来扩展AbstractTableModel绑定到一个ArrayList。我的目标是保留允许单元格编辑、行排序和列重排的所有内置JTable功能。我在这里提供的示例完成了所有这些...但是...在一定的操作序列下,当编辑单元格然后通过拖动列标题重新排列表列时,或者使用列标题按钮排序表时,最近编辑的单元格的内容被复制到表行的两列中。
问题内容: 我试图以编程方式开始在按键上编辑当前行的第三列。 我实现了一个KeyListener,其中包含以下代码 当我释放Enter时,单元格确实是可编辑的(我可以在末尾键入),但是没有插入符号。 当我用鼠标单击时,行为是预期的(我可以进行编辑,并且存在carret)。 另外,我注意到在释放键时,我的celleditor为null,而在mouseclick上,它也不为null。 我究竟做错了什么
问题内容: 创建JTable组件时,默认情况下启用单元格编辑。如何防止用户编辑JTable的内容? 问题答案: JTable使用AbstractTableModel对象。这就是您传递给JTable的构造函数的东西。您可以如下编写自己的AbstractTableModel 然后将您的JTable初始化为
我在stackoverflow上看到过类似的问题,但无论如何,我无法用这些答案解决我的问题。 我想做的是: 单击JTable中的double on单元格(由于IsCelledTable方法,该单元格可以编辑) 在自定义表中保存单元格的新值以打印此新值 更新我的数据库(SQlite)中的数据 这是我的自定义表模型 . 这是我打印JTable的JPanel: