问:我觉得我可能非常接近让我的应用程序按照我希望的方式在Jlist中显示数据库中的行(每行中的每一列都显示为Jlist上的一项。我认为问题可能出在将jList变量连接到模型(jlist称为jList1),或者因为jlist自动填充了我尚未尝试删除的项目(item1,item2)等,所以必须先删除它们我可以期望它能正常工作吗?任何帮助都将不胜感激!.......看起来像:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt){
DefaultListModel <String> model = new DefaultListModel <>() ;
JScrollPane窗格=新的JScrollPane(jList1);
jList1.setModel(model);
字符串sqlQuery =“从APP.DATA123中选择Column1,Column2,Column3,Column4,Column5” +
“其中(Column1 =?)AND(Column2 =?)AND(Column3 =?)OR(Column1 =?)AND(Column2 =? )“;
字符串abc = jTextField2.getText();
字符串cba =(String)jComboBox1.getSelectedItem();
字符串cab =(String)jComboBox2.getSelectedItem();
字符串数据=“ jdbc:derby:// localhost:1527 / sample”;
尝试(
Connection conn = DriverManager.getConnection(
data,“ app”,“ app”);
PreparedStatement st = conn.prepareStatement(sqlQuery)){
Class.forName(“ org.apache.derby.jdbc.ClientDriver”);
st.setString(1,abc);
st.setString(2,cba);
st.setString(3,cab);
st.setString(4,cba);
st.setString(5,cab);
ResultSet rec = st.executeQuery();
final String SPACE =“”;
StringBuilder sBuilder = new StringBuilder();
while(rec.next()){
sBuilder.setLength(0);
sBuilder.append(rec.getString(“ Column1”))。append(SPACE)
.append(rec.getString(“ Column2”))。append(SPACE)
.append(rec.getString(“ Column3”))。append(空间)
.append(rec.getString(“ Column4”))。append(SPACE)
.append(rec.getString(“ Column5”))。append(SPACE);
model.addElement(sBuilder.toString());
}
st.close();
} catch(SQLException s){
System.out.println(“ SQL错误:” + s.toString()+“”
+ s.getErrorCode()+“ + s.getSQLState());
} catch(Exception e){
System.out.println(“ Error:” + e.toString()
+ e.getMessage());
答:这里,我们有两种方法:
首先,您需要从DefaultListModel中删除所有元素。
DefaultListModel <String>模型=新的DefaultListModel <>();
model.removeAllElements();
第二,您需要清空列表。
jList1.setListData(new String [0]);