【问题标题】:Java : jscrollpane disable horizontal scrollingJava:jscrollpane 禁用水平滚动
【发布时间】:2011-06-20 22:17:01
【问题描述】:

我想在 jscrollpane 上添加一个 Jpanel;我也只想垂直滚动。我想设置我的 jPanel“flowLaout”的布局,并通过 jpanel.add(component) 方法在我的代码中向我的 jPanel 添加几个组件。结果是所有组件都仅放置在超过 jpanel 宽度的一行中,并且未显示。我用过这个技巧,都失败了:

jScrollPane1.setHorizontalScrollBar(null);
jScrollPane1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

【问题讨论】:

    标签: java swing user-interface jscrollpane


    【解决方案1】:

    Wrap Layout 应该适合你。

    【讨论】:

    • 不,它不起作用。水平滚动功能被禁用,但 I 组件显示在一行中。 JPanel 布局是 flowlayout。
    • @sajad,代码对我来说很好,否则我不会在博客上发布代码。因此,发布您的 SSCCE 来说明您的问题,以便我可以查看问题是 WrapLayout 还是您使用 WrapLayout 的代码。
    • 对不起,首先我没有注意到链接。我以为你参考我的代码。但正如你所说,这可以正常工作。非常感谢先生!
    【解决方案2】:

    我不确定您当前项目的细节,但我会推荐MigLayout。它从来没有给我带来过错。

    我目前正在编写一个带有嵌套 MigLayout 面板的触摸屏界面,最多 4 或 5 层深,并且没有遇到任何问题。

    【讨论】:

    • 这可能是个好主意。谢谢你。我刚刚尝试了以前的答案,我的问题解决了。感谢您的解决方案。
    【解决方案3】:

    请使用以下策略打开垂直滚动并关闭水平滚动(适用于 Java SE 7):

    Panel graphicPanel = new Panel();
    JScrollPane scrollbar = new JScrollPane(graphicPanel);
    scrollbar.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    scrollbar.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    scrollbar.setPreferredSize(new Dimension(1300, 600));
    scrollbar.setVisible(true);
    add(scrollbar, BorderLayout.CENTER);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-05
      • 2014-05-11
      • 2015-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多