Java Jlist的换行/stringbuilder的下一行

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

我有一个填充jList的数据库,这样每行的每一列都显示为1个jList项。我已经根据需要设置了垂直滚动条和水平滚动条,但从来没有成功过

  • 这不是“换行”,文本行在水平方向上走得太远,所以它不是全部可见

  • 我希望垂直列出列,例如:

  • 相反,正如我所说,它是水平的,例如:

    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();