如果选择了任何行,则为JTable

时间:2016-07-12 18:09:09

标签: java swing jtable

我试图弄清楚如何通过“if”语句向JTable添加逻辑,该语句检查是否选择了任何行。我知道如何检查是否选择了特定行,但我似乎无法弄清楚如何检查所有行。

if(tbl.isRowSelected(0)){

显然,这是检查特定行。

我也试过像

这样的东西
if(tbl.isRowSelected(0-2000)){

这不起作用,我也没想到它会起作用。

原因是我正在设置表格,以便当用户点击一行然后点击“编辑”按钮时,将出现第二个表格,其中包含与所选行相关的更多数据。 (这里使用哈希映射中的2D数组变得复杂,但我首先需要解决这个简单的问题)。

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:4)

这应该可以使用ListSelectionModel,可以使用JTable::getSelectionModel()

进行检索

因此,您可以致电table.getSelectionModel().isSelectionEmpty()以确定是否选择了任何行。

答案 1 :(得分:2)

使用:

 table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
        public void valueChanged(ListSelectionEvent event) {
            // do some actions here, for example
            // print first column value from selected row
            System.out.println(table.getValueAt(table.getSelectedRow(), 0).toString());
        }
    });

答案 2 :(得分:2)

使用table.getSelectedRow()它返回所选行的索引 和getSelectedColumn()返回选定的列

并且有getSelectedRows()它返回所选行的索引数组

materialize