Java 데이터베이스에서 일부 정보를 검색 한 다음 응용 프로그램을 화면의 JTable에 표시하는 Java 응용 프로그램을 만들고 있습니다.결과 집합이 JTable에 항상 표시되지 않는 경우
정보를 가져 와서 DefaultListModel <에 넣으려는 코드는 아래와 같습니다. 그런 다음 DefaultListModel <>이 정보를 화면에 표시하는 JTable에 공급됩니다.
SwingWorker<Void, Void> worker = new SwingWorker< Void, Void>() {
@Override
public Void doInBackground() {
String SQL = "SELECT * FROM AddABill";
try {
Statement stmt = GlobalVars.conn.createStatement();
ResultSet rs = stmt.executeQuery(SQL);
menuOptions.clear();
while(rs.next()){
menuOptions.addElement(rs.getString(1) + " - " + rs.getString(2));
}
rs.close();
stmt.close();
}
catch (SQLException e) {
System.out.println("An Error Was Detected! :/");
}
return null;
}
@Override
public void done(){
loadingGif.setVisible(false);
}
};
worker.execute();
내가 겪고있는 문제는 정보가 화면에 표시되는 경우가 있으며 때로는 그렇지 않은 경우입니다. 사용 된 쿼리에 변경 사항이 없으므로 MySQL 연결과 관련이 있다고 가정합니다.
JTable로하고 MenuOptions이
menuOptions = new DefaultListModel<>();
menuOptions.addElement("");
menuList = new JList<>(menuOptions);
menuList.setFont(new Font("Myriad Hebrew", Font.PLAIN, 32));
menuList.setBackground(Color.decode("#005952"));
menuList.setForeground(Color.decode("#BEC423"));
menuList.setSelectionBackground(Color.decode("#660033"));
menuList.setSelectionForeground(Color.decode("#FFFFFF"));
같은 설정이 그래서 궁금 문제는 내가 정보가 항상 화면에 표시되어 있는지 확인 할 수있는 방법입니다 수 있습니다. 표시되고 표시되지 않는 그림은 아래와 같습니다.
표시 :
을 표시하지 않음 :
내가이 때까지 코드를 실행 다시 계속해야 보여주기 위해 정보를 얻을 수 결국 나타났다.
도움을 주시면 감사하겠습니다. 도움말들에 대한
1.'doInBackground()'안에있는 모든 것은'EDT' 밖에 있습니다.'publish()'--->'process()','setProcess()'또는'done() ',''JTable'! = DefaultListModel' 3.'DefaultListModel'을 리셋하기 위해서,'publish() ---> process()','setProcess()'또는'done() 내부에서'SwingWorker'를 실행하십시오. ''DefaultListModel'에 새'Item'을 추가하고, 코드 나 설명에 아무것도 쓰지 않습니다. – mKorbel
@mKorbel 1) 나머지 애플리케이션에서는'doInBackground()'의 GUI 변경 사항이 적용되었습니다. 2)'DefaultListMenu'가'JTable'에 정보를 제공한다는 것을 알고 있습니다. 'doInBackground()'함수에서 코드를 변경했기 때문에 문제가 발생한 경우 가끔은 제대로 동작하지 않는 경우가 종종 있습니다. – thomasjcf21
_sometimes_에서 작동하지만 신뢰할 수 없습니다. 더 [여기] (http://stackoverflow.com/a/7158505/230513) 및 [여기] (http://stackoverflow.com/a/38499763/230513). – trashgod