저는 해당 원재료 제공 업체의 브로셔를 관리 할 가족 기업용 프로그램을 만들고 있습니다. 모든 코드가 필요할 것 같아서 pastebin에 게시했습니다. 나는 문제가 생각하는 곳 http://pastebin.com/Gc3aLe10JScrollPane에 JList가 표시되지 않습니다.
는 그러나 또한, 나는 여기에 연결 :
tnBuscar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
String search = searchField.getText();
Connection con = null;
java.sql.Statement st = null;
ResultSet rs = null;
String url = "jdbc:mysql://localhost:3306/";
String db = "FAVEGA";
String driver = "com.mysql.jdbc.Driver";
String user = "root";
String pass = "";
try {
Class.forName(driver);
con = DriverManager.getConnection(url + db, user, pass);
con.setAutoCommit(false);
st = con.createStatement();
String sql = "SELECT * FROM catalogos WHERE id = '" + search + "' OR name LIKE '%" + search + "%' OR keywords LIKE '%" + search + "%'";
rs = st.executeQuery(sql);
while (rs.next()) {
final String resultName = rs.getString("name");
buffer.add(resultName);
}
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}finally{
btnEditar.setVisible(true);
btnReiniciar.setVisible(true);
final JList list = new JList(buffer.toArray());
final JScrollPane scrollPane = new JScrollPane(list);
scrollPane.add(list);
scrollPane.setViewportBorder(new LineBorder(new Color(0, 0, 0)));
scrollPane.setBounds(67, 195, 269, -143);
buscarPanel.add(scrollPane);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setBounds(0, 0, 435, 240);
scrollPane.setPreferredSize(new Dimension(70, 80));
list.setLayoutOrientation(JList.VERTICAL);
buscarPanel.invalidate();
buscarPanel.validate();
btnEditar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(list.getSelectedValue() != null){
String selectedValue = (String) list.getSelectedValue();
tab.setSelectedIndex(2);
btnReiniciar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
scrollPane.setVisible(false);
btnEditar.setVisible(false);
btnReiniciar.setVisible(false);
}
});
}
}
});
}
}
});
이 버튼을 누르면 검색 내 데이터베이스에있는 항목 만이 실행될 때 어떻게 든 JList의를로드하지 않습니다. 문제가 무엇입니까? 추신 : 런타임 오류가없고 스택 추적이 없습니다. 대신 &을 제거 사용 XxxListModel이 XxxModel must be done on EDT
바로 finally
블록에 JPanel
모든 업데이트에 JComponents
를 추가
당신이 설명해 주시겠습니까 이미 눈에 보이는 약간 느린에 /에서
JComponent
를 추가해야? 이것은 windowsBuilder에 의해 만들어졌고 몇 가지 변경 사항이 추가되었습니다. Java와 프로그래밍에 익숙하지 않으므로 더 자세히 설명해주십시오. –@ user1178729 : 어디서든 표시되지 않는 구성 요소 인 finally 블록에 새로운 구성 요소가 많이 생성됩니다. GUI에서 이미 구현 된 구성 요소에 정보를 단순히 표시하지 않는 것이 어떻습니까? 그의 커다란 대답은 mKorbel에게 1+ 이상입니다. –
finally에 선언 된 구성 요소가 나중에 표시됩니다. 필자는 finally에 선언 된 두 요소, 즉 rs.hasNext() 이벤트의 버퍼 변수를 사용하기 때문에 목록에 추가 된 목록과 scrollPane을 찾았습니다. scrollPane은 필요에 따라 추가해야한다고 생각합니다. 명부. –