使用 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);
}
}
我希望你明白我在上面解释的内容。
我有一个 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);
}
}
我希望你明白我在上面解释的内容。