java – 嵌套的JScrollPane不合适
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 嵌套的JScrollPane不合适,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2100字,纯文字阅读大概需要4分钟。
内容图文
![java – 嵌套的JScrollPane不合适](/upload/InfoBanner/zyjiaocheng/817/332917a34f2f4a018ac5d71cb81a3c2b.jpg)
我遇到嵌套JScrollPanes的问题.基本上我想要一个外部JScrollPane垂直滚动而不是水平滚动(想想Netflix Web界面).在这个外部JScrollPane里面,我希望有多个水平滚动的JScrollPanes.我的问题是内部JScrollPanes的水平滚动条从不显示,因为它们看起来像是占用了JPanels的整个首选大小.这是描述我在说什么的图像:
编辑:此代码基于camickr的答案现在正在工作:
import java.awt.BorderLayout;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class NestedScrollPane extends JFrame {
public NestedScrollPane() {
ScrollablePanel outerPanel = new ScrollablePanel();
outerPanel.setScrollableWidth(ScrollablePanel.ScrollableSizeHint.FIT);
outerPanel.setLayout(new BoxLayout(outerPanel, BoxLayout.Y_AXIS));
for (int j = 0; j < 20; j++) {
ScrollablePanel innerPanel = new ScrollablePanel();
innerPanel.setScrollableHeight(ScrollablePanel.ScrollableSizeHint.NONE);
innerPanel.setLayout(new BoxLayout(innerPanel, BoxLayout.X_AXIS));
JScrollPane innerScrollPane = new JScrollPane(innerPanel);
innerScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
for (int i = 0; i < 10; i++) {
JLabel longLabel = new JLabel("asefaesfesfesfgesgersgrsgdrsgdrsgderg ");
innerPanel.add(longLabel);
}
outerPanel.add(innerScrollPane);
}
JScrollPane outerPane = new JScrollPane(outerPanel);
outerPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
this.setContentPane(outerPane);
this.setSize(400, 400);
outerPane.setSize(400, 400);
this.setVisible(true);
}
public static void main (String[] args) {
NestedScrollPane pane = new NestedScrollPane();
pane.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
我看了How to get JScrollPanes within a JScrollPane to follow parent’s resizing,但在外面板上使用BoxLayout或BorderLayout似乎无法解决任何问题.
解决方法:
您需要实现添加到视口的外部面板的Scrollable接口,以强制面板填充视口的宽度.
一个简单的方法是使用Scrollable Panel.您应该能够使用:
// JPanel outerPanel = new JPanel();
ScrollablePanel outerPanel = new ScrollablePanel();
outerPanel.setScrollableWidth( ScrollablePanel.ScrollableSizeHint.FIT );
内容总结
以上是互联网集市为您收集整理的java – 嵌套的JScrollPane不合适全部内容,希望文章能够帮你解决java – 嵌套的JScrollPane不合适所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。