【发布时间】:2019-05-14 09:46:45
【问题描述】:
嘿,我是新手
我希望动态内容与父窗口一样宽(并根据其宽度自动调整大小),但如果需要能够向下滚动(如果内容超出可用空间)。我正在向JScrollPanel 添加和删除多个内容,例如Jpanel 或JinternalFrame。
我尝试过的大多数事情,无论是自定义类还是布局管理器,要么只是隐藏了滚动条(但并没有阻止内容永远在水平方向添加) 或者只是缩小了内容。
我试过https://tips4java.wordpress.com/2009/12/20/scrollable-panel/ 但它只会拉伸或收缩public class MainView extends JFrame {
private ScrollablePanel contentPane;
private JScrollPane scrollPane;
...
在构造函数中:
...
contentPane = new ScrollablePanel(new BorderLayout());
contentPane.setScrollableWidth(ScrollablePanel.ScrollableSizeHint.NONE);
contentPane.setScrollableHeight(ScrollablePanel.ScrollableSizeHint.NONE);
contentPane.setBorder(new EmptyBorder(1, 1, 1, 1));
scrollPane = new JScrollPane(contentPane);
setContentPane(scrollPane);
不同的 Sizehints 或布局,如默认 Flowlayout,要么更差,要么相同
垂直滚动按预期工作,但不限制水平方向的内容(似乎我不允许添加屏幕截图) 我不需要这个类,如果你认为它可以用其他方式实现
【问题讨论】:
-
你的动态内容是什么?是文字吗?是图像吗?还有什么?或许您可以将minimal reproducible example 放在一起并发布?
-
目前 Jinternal 帧从文件中打开,如果不再需要则丢弃。当我到达它时,我发布了一个 mcve
标签: java swing jscrollpane