【发布时间】:2021-06-24 21:56:21
【问题描述】:
我的问题很简单,就是不知道怎么在google上查询。
我想要的只是在我单击JTable 上的一行时打印选定的行索引。
问题是如果我点击一个有效的行索引
(这是index >= 0 && index < rowCount),然后我在没有行的表下部的有效行之外单击(显然现在是index < 0)打印的行索引仍然是我最后一个有效的行索引点击。
我想要的是打印"No row selected" 并在我单击没有行的表格的下部空白部分时清除行选择。
(我已经在表格下方空白部分的行之外单击)
这是我的代码:
JTable table = new JTable(new MyTableModel());
table.setFillsViewportHeight(true);
table.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
int rowIndex = table.getSelectedRow();
if(rowIndex < 0) {
System.out.println("No row selected");
table.clearSelection();
} else {
System.out.println("Row " + rowIndex + " selected");
}
}
});
这个简单的程序唯一一次按照我想要的方式工作是当我将setFillsViewportHeight 设置为false 或忽略它,因为它默认为false。
那么当table.setFillsViewportHeight 设置为true 时我该怎么做呢?
【问题讨论】:
-
可能你需要使用List Selection Listener,不知道你使用JTable.setSelectionMode,maybe more的设置
标签: java swing jtable row mouselistener