java - JPanel 不在 JScrollPane 中滚动

标签 java swing jpanel jscrollpane miglayout

我有一个像这样创建的 JPanel

    JPanel statsKeysPanel = new JPanel(new MigLayout("insets 0", "[]", ""));

并填充动态数量的相互堆叠的 JLabel。举个例子:

    for(int i = 0; i < 30; i++) {
        statsKeysPanel.add(new JLabel("" + i + " key value"), "wrap");
    }

然后我像这样创建并添加滚动条

    JPanel panel = new JPanel(new MigLayout("insets 0", "[center][][center][]", "[][]"));
    final JScrollPane keysScroller = new JScrollPane(this.statsKeysPanel, ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER,
        ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
    keysScroller.setMaximumSize(new Dimension(100, 300));
    panel.add(keysScroller, "cell 0 1");

应用了最大值 300,但 30 个 JLabel 中不适合 300px 的 JLabel 中的 15 个被隐藏,并且滚动不起作用。我究竟做错了什么? (下图)

enter image description here

最佳答案

final JScrollPane keysScroller = new JScrollPane(this.statsKeysPanel, ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER,
        ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

为什么水平和垂直滚动条都使用NEVER?我认为这会阻止出现滚动条。

我通常不设置任何一个属性,只是让滚动 Pane 确定何时显示滚动条。有时我使用 ALWAYS 为滚动条保留空间。

关于java - JPanel 不在 JScrollPane 中滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26319408/

相关文章:

java - 我的代码遇到了运行时错误,有人可以帮我找出我哪里错了

java - 使用流通过 Builder 从 csv 文件创建对象

java - 关闭 JFrame 但继续执行程序

java - 添加叠加的 JLabel

java - 向 JPanel 添加其他 JPanel

java - 动态添加gui组件?

java - 从 ListView 获取 EditText 值是可行的...有时

java - AsyncTASK 错误.....NetworkOnMainThreadException

java - 是否有在运行时从 Pojo 动态生成 Swing GUI 的框架?

Java:JPanel边框旋转但背景不旋转