2017-05-12 5 views
0

Ich habe eine Javafx-Tabelle, wobei ich den Inhalt jeder Zeile anzeigen möchte, die auf ein anderes Formular geklickt wird. unten ist die Methode, die ich versuchte zu verwenden, die nicht die erwartete Antwort gibt, obwohl in meinem SceneBuilder, fügte ich diese Methode zum MouseClicked Ereignis hinzu.javaFx-Tabellenansicht verwenden, um den Inhalt einer ausgewählten Zeile anzuzeigen

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

Anmerkung: Ich habe so etwas wie dies mit JFrame einmal versucht, die mir die erwartete Antwort gab, in meinem JFrame ... das ist die Methode, die getan in dem Job verwendet wurde.

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

ich schätzen, wie um dies zu realisieren bitte. Vielen Dank für Ihre Zeit.

Antwort

1

was Sie tun müssen, ist nur die Split-Methode zu verwenden, um den Index der Zeile, die Sie ausgewählt haben, zu erhalten, und was meine ich damit.

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

Also, in der Funktion, die Sie oben haben, wird ein wenig zwicken unten die Arbeit für Sie erledigt.

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

Ich hoffe, Sie bekommen, was ich oben erklärt habe.

Verwandte Themen