2017-11-15 1 views
0

내 GUI에는 "검색"메뉴 항목이 있으며 Faculty 테이블의 ssn 번호를 검색하여 javabook 데이터베이스의 TextArea로 인쇄해야합니다. 그러나, 난 단지 15 행을 가지고 테이블의 마지막 행을 얻을. 다음은 searchDB 메소드를 호출하는 Search menuItem입니다.javabook 데이터베이스의 TextArea에 표의 모든 행을 인쇄하십시오.

MenuItem search = new MenuItem("Search"); 
    search.setOnAction((ActionEvent t) -> { 
     try{ 
      searchDB(tArea); 
     } 
     catch(Exception ex){ 
      ex.printStackTrace(); 
     } 
    }); 

다음은 searchDB 메소드입니다.

public void searchDB(TextArea tArea) throws SQLException, ClassNotFoundException { 
    if (databaseName != null) { 
     TextInputDialog dialog = new TextInputDialog(); 
     dialog.setContentText("Please enter Faculty ssn number follwing by %"); 
     Optional<String> search_id = dialog.showAndWait(); 

     try { 

      Class.forName("com.mysql.jdbc.Driver"); 
      Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/" +databaseName+ "?autoReconnect=true&useSSL=false", "scott", "tiger"); 
      Statement statement = connection.createStatement();  
      ResultSet resultSet = statement.executeQuery("select * from Faculty where ssn like '" + search_id.get() + "';");    

      while (resultSet.next()) 
       tArea.setText(resultSet.getString(1) + "\t" + resultSet.getString(2) + "\t" + resultSet.getString(4) + "\t" + resultSet.getString(5)); 

     }catch(Exception ex){ 
      ex.printStackTrace(); 
     } 
    } 
} 

왜 테이블의 마지막 행만 가져올 수 있습니까? 및 TextArea 테이블의 모든 행을 인쇄하는 방법?

답변

0

setText()을 사용하고 있기 때문에 대신 append()을 사용하십시오. 문자 영역에 대해서는 javadoc을 확인하십시오.

+0

[appendText()'] (https://docs.oracle.com/javase/9/docs/api/javafx/scene/control/TextInputControl.html#appendText-java.lang.String)이라고 생각합니다. -) ('JTextArea'에 대한 문서를 링크했다.). –

+0

@James_D 예 appendText()가 가치가 떨어지는 append(), 대신 TextArea를 가리키는 링크를 업데이트했습니다. 감사합니다. – johnII

+0

더 이상 사용되지 않습니다. 이제 당신은'java.awt.TextArea'를 링크하고 있습니다 –

관련 문제