我有一个填充jList的数据库,这样每行的每一列都显示为1个jList项。我已经根据需要设置了垂直滚动条,而水平从未设置过,但是
它不是“换行”,文本行水平走得太远,所以它不是全部可见。
我希望垂直列出列,例如:
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();
答案 0 :(得分:1)
它不是“换行”,文本行水平走得太远,所以它并非全部可见。 ...为此我尝试了.append(“\ n”)和.append(System.getProperty(“line.separator”));,两者都没有用。
JList
使用JLabel
作为默认渲染器,这意味着不会渲染新行。你可以用html来渲染内容,但是给出了......
希望垂直列出列,例如
...您可以考虑使用JTable。
答案 1 :(得分:1)
和水平从不
如果你的行太大,那么你就不想使用never。您希望让JList确定何时需要滚动。
我希望垂直列出列,例如:
请勿附加数据。
相反,您需要向JList添加5个单独的项目。然后每个项目将出现在新行上。