我有一个填充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