我有一個填充jList的數據庫,這樣每行的每一列顯示爲1個jList項目。我已經設置了垂直滾動條根據需要和水平絕不然而這用於stringlist的Jlist/next line的換行
不是「換行」,文字行太過分了水平,所以它不是所有可見的工作。
我想的列被垂直列出如:
COLUMN1: column1 info
COLUMN2: column1 info
COLUMN3: column1 info
COLUMN4: column1 info
代替,正如我所說它是水平的,例如:
COLUMN1: column1 info COLUMN2: column2 info COLUMN3: column3 info
對於這我已經嘗試過.append(「\ n」)和.append(System.getProperty(「line.separator」)),都不起作用。
解決這些問題中的一個或兩個問題的最佳方法是什麼?
謝謝!
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
DefaultListModel model = new DefaultListModel();
jList1.setModel(model);
final String SPACE = " ";
StringBuilder sBuilder = new StringBuilder();
String sqlQuery = "select Column1, Column2, Column3, Column4, Column5 from APP.DATA123 "
+ "where (Column1 = ?) AND (Column2 = ?) AND (Column3= ?) OR (Column2 = ?) AND (Column3 = ?)";
String abc = jTextField2.getText();
String cba = (String)jComboBox1.getSelectedItem();
String cab = (String)jComboBox2.getSelectedItem();
String data = "jdbc:derby://localhost:1527/sample";
try (
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();
while (rec.next()) {
sBuilder.setLength(0);
sBuilder.append(rec.getString("Column1")).append(SPACE)
.append(rec.getString("Column2")).append(SPACE)
.append(rec.getString("Column3")).append(SPACE)
.append(rec.getString("Column4")).append(SPACE)
.append(rec.getString("Column5")).append(SPACE);
model.addElement(sBuilder.toString());
}
st.close();
「Offtopic:」你可能想看看Robert Martin的「Clean code」。你的代碼可以從中受益。 **很多**。你在這種可憐的方法中做了太多事情。嚴重:可怕的風格。 – GhostCat
如果我有時間,我會研究它,給我一個休息時間,我不是一個軟件人我是一名藥劑師,並在1個月的時間內學習了Java。我讀了「山姆的21天教你自己的Java」。 – Evan12