Java JTable获取所选行的数据

时间:2015-03-30 12:04:39

标签: java swing jtable tablemodel

是否有方法用于获取所选行的数据?我只想简单地单击包含数据的特定行,然后单击将在控制台中打印数据的按钮。

enter image description here

5 个答案:

答案 0 :(得分:22)

快速谷歌会给你多个链接,里面有答案。尽管如此,您应该阅读本页:

http://docs.oracle.com/javase/7/docs/api/javax/swing/JTable.html

你会在其中找到这些方法:

getValueAt(int row, int column)
getSelectedRow()
getSelectedColumn()

使用这些组合来实现您的结果。

答案 1 :(得分:15)

您可以使用以下代码获取表格所选行的第一列的值。

int column = 0;
int row = table.getSelectedRow();
String value = table.getModel().getValueAt(row, column).toString();

答案 2 :(得分:8)

如果您想获取整行中的数据,可以使用下面的组合

tableModel.getDataVector().elementAt(jTable.getSelectedRow());

where" tableModel"是可以像这样访问的表的模型

(DefaultTableModel) jTable.getModel();

这将返回整个行数据。

我希望这有助于某人

答案 3 :(得分:1)

就这么简单:

    tbl.addMouseListener(new MouseListener() {
        @Override
        public void mouseReleased(MouseEvent e) {
        }
        @Override
        public void mousePressed(MouseEvent e) {
            String selectedCellValue = (String) tbl.getValueAt(tbl.getSelectedRow() , tbl.getSelectedColumn());
            System.out.println(selectedCellValue);
        }
        @Override
        public void mouseExited(MouseEvent e) {
        }
        @Override
        public void mouseEntered(MouseEvent e) {
        }
        @Override
        public void mouseClicked(MouseEvent e) {
        }
    });

答案 4 :(得分:0)

ListSelectionModel开始使用:

ListSelectionModel cellSelectionModel = table.getSelectionModel();
cellSelectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

cellSelectionModel.addListSelectionListener(new ListSelectionListener() {
  public void valueChanged(ListSelectionEvent e) {
    String selectedData = null;

    int[] selectedRow = table.getSelectedRows();
    int[] selectedColumns = table.getSelectedColumns();

    for (int i = 0; i < selectedRow.length; i++) {
      for (int j = 0; j < selectedColumns.length; j++) {
        selectedData = (String) table.getValueAt(selectedRow[i], selectedColumns[j]);
      }
    }
    System.out.println("Selected: " + selectedData);
  }

});

see here.