我有一个javafx表,我希望显示在不同表单上点击的任何行的内容。 下面是我尝试使用的方法,它没有给出预期的响应,尽管在我的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);
}
}
我将很感激如何解决这个问题。 非常感谢你的时间。
答案 0 :(得分:1)
你需要做的只是利用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);
}
}
我希望你得到我在那里解释的内容。