Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTable获取所选行的数据_Java_Swing_Jtable_Tablemodel - Fatal编程技术网

Java JTable获取所选行的数据

Java JTable获取所选行的数据,java,swing,jtable,tablemodel,Java,Swing,Jtable,Tablemodel,是否有任何方法用于获取所选行的数据?我只想简单地单击包含数据的特定行,然后单击将在控制台中打印数据的按钮 您可以在其中找到以下方法: getValueAt(int row, int column) getSelectedRow() getSelectedColumn() 混合使用这些方法可获得结果。如果要获取整行数据,可以使用下面的组合 tableModel.getDataVector().elementAt(jTable.getSelectedRow()); 其中“tableModel”

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

您可以在其中找到以下方法:

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

混合使用这些方法可获得结果。

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

tableModel.getDataVector().elementAt(jTable.getSelectedRow());
其中“tableModel”是可以像这样访问的表的模型

(DefaultTableModel) jTable.getModel();
这将返回整行数据


我希望这有助于某人

您可以使用以下代码获取表中选定行的第一列的值

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

列表选择模型使用:

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);
  }

});
ListSelectionModel cellSelectionModel=table.getSelectionModel();
cellSelectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
cellSelectionModel.addListSelectionListener(新建ListSelectionListener()){
public void值已更改(ListSelectionEvent e){
字符串selectedData=null;
int[]selectedRow=table.getSelectedRows();
int[]selectedColumns=table.getSelectedColumns();
for(int i=0;i

就这么简单:

    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) {
        }
    });

我试过谷歌,但它显示的大多是getValueAt()。我只是缩小了我的问题范围,因为这个JTable是我们案例研究的一部分。试着不要想一个完整的大解决方案,而是使用小部分。1.获取所选行。2.获取从行中获得的对象的内容。也可以从许多问题中看到答案。这一个就是确切的答案+1虽然此代码段可能会解决此问题,但它没有解释为什么或如何回答此问题。请,因为这确实有助于提高你的文章质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。您可以使用该按钮改进此答案,以获得更多选票和声誉!