java - 如何手动添加 jlabels 到滚动 Pane ?

标签 java sql swing

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

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

最佳答案

but no label is added when i run the code

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

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

所以代码的基本结构是:

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

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

编辑:

layout is already set to group layout.....

嗯,如果你想使用GroupLayout,你需要指定各种约束。阅读 Swing 教程中关于 How to Use GroupLayout 的部分了解更多信息和工作示例。我建议您不要使用 GroupLayout。

在我看来,您只是显示了一列图标。我会考虑使用 JList 来实现这一点。本教程还有一个关于如何使用 LIsts 的部分。

关于java - 如何手动添加 jlabels 到滚动 Pane ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47002205/

相关文章:

java - 获取运行时错误 "java.lang.IllegalStateException: Could not execute method for android:onClick"

java - 使用语法 "for(Type varName:list)"查找列表中具有最大长度的字符串

java - 删除jtable中选定行时如何编写sql查询?

sql - 获取最近日期行的最佳方法? (本周/月)

Mysql:忽略表中的2个不同的列

java - 如何处理不断更新的大图像

java - 如何在两个面板之间拖放形状

java - 我怎么知道我是否在事件派发线程上?

java - 为什么我会收到方法覆盖错误?

java - 我可以更改屏幕底部后退箭头的功能吗?