gpt4 book ai didi

Java - 使用 SpringLayout 的 JScrollPane View 布局

转载 作者:行者123 更新时间:2023-12-04 03:03:11 24 4
gpt4 key购买 nike

我有一个 JScrollPane,它有一个使用 SpringLayout 的 View 组件。

final JPanel panel = new JPanel(new SpringLayout());
// add stuff to panel here
final JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
getContentPane().add(scrollPane);

JScrollPane 似乎不工作,任何帮助将不胜感激!

最佳答案

引自How to Use Scroll Panes

除非您明确设置滚动 Pane 的首选大小,否则滚动 Pane 会根据其九个组件(视口(viewport),以及两个滚动条(如果存在)、行标题和列标题、和四个角)。最大的因素,也是大多数程序员关心的因素,是用于显示客户端的视口(viewport)的大小。

  • 因此您必须在 JScrollPane 实例上调用 setPreferedSize(Dimension d)

    final JPanel panel = new JPanel(new SpringLayout());
    // add stuff to panel here
    final JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    scrollPane.setPreferredSize(new Dimension(300, 300));
    add(scrollPane);
  • 或覆盖用作视口(viewport)

    JPanel/组件的getPreferredSize()
    final JPanel panel = new JPanel(new SpringLayout()) {

    @Override
    public Dimension getPreferredSize() {
    return new Dimension(300, 300);
    }
    };
    // add stuff to panel here
    final JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    add(scrollPane);

其他说明:

  • 不要不必要地扩展 JFrame 类。

  • 只需在 JFrame 实例上调用 add(..),因为调用会转发到 contentPane

关于Java - 使用 SpringLayout 的 JScrollPane View 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13544311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com