如何手动将jlabels添加到滚动窗格?

时间:2017-10-29 15:54:18

标签: java sql swing

我尝试将书名添加到netbeans中的滚动窗格,但是当我运行代码时没有添加标签请帮助我。我手动将标签添加到我创建并插入滚动窗格的面板

public void displayBooks(){
        try{
                        java.sql.Connection con = Connectivity.mysql();
            int totalRows,i=1;
            ResultSet rs;
            Statement st = con.createStatement();
            String qy = "select title from Book order by title;";
            rs = st.executeQuery(qy);
            //Reader rm = rs.getCharacterStream();
            rs.last();
                        totalRows = rs.getRow();
                        rs.beforeFirst();
            Object[] obj = new Object[totalRows+1];
            labels = new JLabel[totalRows+1];
            obj[0] = "";


            ImageIcon icon = new ImageIcon("/root/Pictures/picjpeg");


            while(rs.next()){ 
                                System.out.print(rs.getString(1));
                obj[i] = rs.getString(1);
                labels[i] = new javax.swing.JLabel(rs.getString(1));
                });

                jPanel3.add(labels[i]);
                i++;
            }
                        //pack();
            jComboBox1 = new JComboBox(obj);
        }
        catch(Exception e){
            out.println(e);
        }
    }

1 个答案:

答案 0 :(得分:0)

  

但运行代码时没有添加标签

默认情况下,Swing组件的大小为(0,0),因此无需绘制任何内容。

因此,您需要在完成向面板添加组件后调用布局管理器。

所以代码的基本结构是:

while (rs.next())
{
    panel.add(...);
}

panel.revalidate();  // invokes the layout manager
panel.repaint();  // makes sure the panel is repainted

编辑:

  

布局已设置为组布局.....

好吧,如果要使用GroupLayout,则需要指定所有类型的约束。阅读How to Use GroupLayout上Swing教程中的部分,了解更多信息和工作示例。我建议你不要使用GroupLayout。

在我看来,你只需要显示一列图标。我会考虑使用JList。本教程还有一个关于How to Use LIsts的部分。