Java Jlist的换行/stringbuilder的下一行
我有一个填充jList的数据库,这样每行的每一列都显示为1个jList项。我已经根据需要设置了垂直滚动条和水平滚动条,但从来没有成功过Java Jlist的换行/stringbuilder的下一行,java,sql,swing,Java,Sql,Swing,我有一个填充jList的数据库,这样每行的每一列都显示为1个jList项。我已经根据需要设置了垂直滚动条和水平滚动条,但从来没有成功过 这不是“换行”,文本行在水平方向上走得太远,所以它不是全部可见 我希望垂直列出列,例如: 相反,正如我所说,它是水平的,例如: COLUMN1: column1 info COLUMN2: column2 info COLUMN3: column3 info 为此,我尝试了.append(“\n”)和.append(System.getProperty(“l
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();
这不是“换行”,文本行在水平方向上走得太远,所以它不是全部可见。。。为此,我尝试了.append(“\n”)和.append(System.getProperty(“line.separator”);,两者都不起作用
JList
使用JLabel
作为默认渲染器,这意味着不会渲染新行。您可以使用渲染内容,但如果
希望垂直列出列,例如
…你可以考虑使用. 这不是“换行”,文本行在水平方向上走得太远,所以它不是全部可见。。。为此,我尝试了.append(“\n”)和.append(System.getProperty(“line.separator”);,两者都不起作用
JList
使用JLabel
作为默认渲染器,这意味着不会渲染新行。您可以使用渲染内容,但如果
希望垂直列出列,例如
…你可以考虑使用. 而水平永远不会
如果您的线太大,则不希望使用“从不”。您希望让JList确定何时需要滚动 我希望垂直列出列,例如: 不要附加数据 相反,您需要在JList中添加5个单独的项目。然后,每个项目将显示在新行上 而水平永远不会 如果您的线太大,则不希望使用“从不”。您希望让JList确定何时需要滚动 我希望垂直列出列,例如: 不要附加数据相反,您需要在JList中添加5个单独的项目。然后,每一项都会出现在新行。“Offtopic:”您可能需要查看Robert Martin的“干净代码”。您的代码可以从中受益。很多你用这种糟糕的方法做了太多的事情。严肃地说:糟糕的风格。如果我有时间,我会调查一下,让我休息一下,我不是一个软件人,我是一名药剂师,在一个月内学会了java。我读了《山姆的21天自学java》。《离题:你可能想看看罗伯特·马丁的《干净的代码》。您的代码可以从中受益。很多你用这种糟糕的方法做了太多的事情。严肃地说:糟糕的风格。如果我有时间,我会调查一下,让我休息一下,我不是一个软件人,我是一名药剂师,在一个月内学会了java。我读了“山姆的21天自学java”。
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();