Java Swing : JScrollPane not working

标签 java swing jscrollpane

我有一个包含一些字段的 JPanel。 JPanel 的高度是有限的,所以我必须在它周围放一个 JScrollPane 以便人们可以向下滚动。

正如您在下面看到的,它显示得非常完美。但是您不能向下(或向上)滚动。

DetailPanel detail = new DetailPanel();
JScrollPane jsp = new JScrollPane(detail);
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
jsp.setBounds(745, 10, 235, 225);
add(jsp);

详细信息面板:

private void init(){
            setLayout(null);
            setSize(140, 400);
            int x = 5, y = 0;
            for(int i = 0; i < lbls.length; i++) {
                JLabel lbl = new JLabel(lbls[i]);
                lbl.setBounds(x, y, 200, 25);
                add(lbl);
                fields[i] = new JTextField();
                fields[i].setBounds(x, y+26, 200, 25);
                add(fields[i]);
                y+=50;
            }
        }

enter image description here

最佳答案

您的 DetailPanel 没有与其关联的布局管理器,这意味着当您向其添加子项时它不会扩展,这意味着 JScrollPane 没有任何地方可以滚动。在您的 DetailPanel 上调用 setLayout() 或覆盖 getPreferredSize() 以添加其子级的高度并返回有意义的值。

关于Java Swing : JScrollPane not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10016879/

相关文章:

java - 使用 EasyMock 测试预期方法得到 IllegalStateException

java - servlet 中的 EJB 注入(inject)失败

java - 将标题设置为 JFrame

Java BorderLayout,南永远不会显示自己

java - EntityManager 类型的方法 createEntityGraph(Class<>) 未定义

java - "Trickiness"从 Java 调用 Scala 代码?

java - 从另一个获得一个新的旋转图像图标?

java - 如何在 Jtable 中添加序列号(S.No.),每次删除表的数据时该序列号都会更新?

java - 如何使用 JTextArea 设置 JScrollPane 背景透明和 JScrollBarr 可见?

java - JScrollPane 不更新滚动条