使用 javaFx table 视图显示选定行的内容

using javaFx table view to display the content of a selected row

我有一个 javafx table 借此,我想显示在不同表单上单击的任何行的内容。 下面是我尝试使用的方法,它没有给出预期的响应,尽管在我的 SceneBuilder 中,我将此方法添加到 MouseClicked 事件中。

public void selectedRow() throws SQLException{
        int row = studentTable.getSelectionModel().getSelectedIndex();
        String sql = "select * from student where id= '" + row + "'";
            pst = conn.prepareStatement(sql);
            rs = pst.executeQuery();
            if (rs.next()) {
                String add1 = rs.getString("school_name");
                System.out.println("The selected row is ==> "+ add1);
            }
    }

注意:我曾经使用 Jframe 尝试过这样的事情,它在我的 Jframe 中给了我预期的响应......这是完成工作所使用的方法。

private void all_storesMouseClicked(java.awt.event.MouseEvent evt) {                                        
        // TODO add your handling code here:
        try {
            int row = studentTable.getSelectedRow();
            String stores_click = (studentTable.getModel().getValueAt(row, 0)).toString();
            String sql = "select * from student where id= '" + stores_click + "'";
            pst = conn.prepareStatement(sql);
            rs = pst.executeQuery();
            if (rs.next()) {
                String add1 = rs.getString("school_name");
                System.out.println("The selected row is ==> "+ add1);
            }
    }

我会很感激如何解决这个问题。 非常感谢您的宝贵时间。

你需要做的只是利用split方法获取你选择的行的索引,这是什么意思。

String values = String.valueOf(studentTable.getSelectionModel().getSelectedItem());
String row = values.toString().split(",")[0].substring(1);

所以,在上面的函数中,下面稍作调整即可完成工作。

public void selectedRow() throws SQLException{
        String values = 
        String.valueOf(studentTable.getSelectionModel().getSelectedItem());
        String row = values.toString().split(",")[0].substring(1);
        String sql = "select * from student where id= '" + row + "'";
            pst = conn.prepareStatement(sql);
            rs = pst.executeQuery();
            if (rs.next()) {
                String add1 = rs.getString("school_name");
                System.out.println("The selected row is ==> "+ add1);
            }
    }

我希望你明白我在上面解释的内容。