java - 如何防止在 JTable 之上选择新添加的元素?
问题描述
我有一个包含一行的 JTable。我使用多重选择间隔作为选择模式,除了执行后 5 秒后将在表格顶部插入一个新行。我的问题是:当我运行代码并选择第一行时,5 秒后添加了一个新行(这没关系),但是我得到了两个我不想要的选定行,因为我需要保留旧的选择,这意味着添加新行后,仅选择第二行。如何使用多选间隔模式解决此问题?这是我的代码:
public static void main(String args[]) {
Object[][] rowData = { { "Hello", "World" }, { "By By", "World" } };
Object[] columnNames = { "A", "B" };
JFrame frame = new JFrame("Selecting JTable");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final DefaultTableModel model = new DefaultTableModel(rowData,columnNames);
JTable jtable = new JTable(model);
jtable.setSelectionMode(
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
JScrollPane scrollPane1 = new JScrollPane(jtable);
frame.add(scrollPane1, BorderLayout.CENTER);
frame.setSize(640, 300);
frame.setVisible(true);
try {
Thread.sleep(6000);
} catch (InterruptedException e) {
e.printStackTrace();
}
model.insertRow(0, rowData[0]);
}
解决方案
removeRowSelectionInterval
您可以在插入行后立即调用方法。
就像是:
int newRowIndex = 0;
model.insertRow(newRowIndex, rowData[0]);
jtable.removeRowSelectionInterval(newRowIndex, newRowIndex);
推荐阅读
- reactjs - 大多数基本的 react-native-maps 不起作用(Expo)
- excel - VBA 代码 - 运行时 7 错误消息 - 内存不足
- fill - SVGjs 图像 - 使用填充和描边更改颜色不起作用
- java - Android中的Apache POI重复问题
- python - 具有多个查询参数的 Flask api 端点
- vba - 在 VBA 中使用 LEFT 函数后保持尾随零
- javascript - 路由器路径不能正常工作?
- javascript - 在 Material UI 中使用 withStyles HOC 时,Typescript 道具与组件道具不匹配
- python - 弹丸给出直线的Python动画
- python - python中的API状态设计模式