EDIT (새로운) 값 :채우기 콤보 상자
아직도 cboxCustomers
을 채우는 방법을 알아 냈하지 않았습니다. 나는 지난 1, 2 일 동안 운 좋게 지 냈습니다.
경우 누구든지 도움이 될 수 있습니다 http://pastebin.com/e5wibRYw
내가 BTW, customers
에 cats
에서 갔다.
시도한 적이 있지만 작동하지 않아 올바르게 구현하지 못했습니다.
내가 인구를 처리하는 데 사용한 모든 이벤트는 언제든지 사용하려고 시도한 모든 컨트롤/이벤트에 대해 NullPointerException
을 얻었습니다.
OLD :
는
JForm
있다. 여기에는 하나의 콤보 상자가 있습니다. 또한 고양이 한 테이블 -
cats
. 각 고양이는
id
및
catName
입니다.
내가하고 싶은 것은 콤보 박스를 클릭했을 때 확대하여 cats
에있는 고양이의 id
을 모두 채 웁니다.
SLOVED. 아래 Asnwer. 는 불행하게도 나는 >
로 표시 한 선에서 unreported exception java.sql.SQLException
수많은 나타납니다
private void cboxCatsMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
// create an array list to be filled with cat's ids
ArrayList<String> cats = new ArrayList<String>();
String query = "SELECT id FROM cats ORDER BY id";
>java.sql.PreparedStatement stm = connection.prepareStatement(query);
>ResultSet rs = stm.executeQuery(query);
>while(rs.next()){
>String cat = rs.getString("id");
// add cat's ids tp the array list
cats.add(cat);
}
>rs.close();
// populate the combo box
DefaultComboBoxModel model = new DefaultComboBoxModel(cats.toArray());
cboxCats.setModel(model);
}
OLD 답변 :
내가 그것을 고정 생각합니다. 나는 강조 표시된 모든 줄을 하나의 커다란 try-catch
문으로 묶어서 SQLException
을 잡아야했습니다. 문제가 있습니다 - 콤보 상자를 펼치면 콤보 상자에 값이 id
으로 채워지지 않습니다. 왜 그런가요? 잘못된 이벤트를 사용하고 있습니까?
전체 예외 텍스트를 게시하십시오. 또한 SwingWorker 객체가 제공하는 것과 같은 백그라운드 스레드에서 데이터베이스 쿼리를 수행하고자 할 것입니다. –
편집에 관해서 : 다시 말하지만, 백그라운드 스레드에서 모든 데이터베이스 쿼리를 수행해야합니다. mouseClick에서 콤보 박스를 채우려 고하는 이유는 무엇입니까? 데이터베이스를 쿼리하는 데 시간이 걸릴 것이고, 스윙의 콤보 상자 열기 기능이 엉망이 될 것입니다. 콤보 박스를 미리 채우지 않으시겠습니까? –
예. 그것은 더 의미가 있습니다. 감사. – Bob