java - JScrollPane 在 JPanel 的剩余区域上最大化嵌入组件

标签 java swing jpanel jscrollpane jlist

看起来好像当我将 JTextArea 或 JList 放入 JScrollPane 中时,该组件会在其所在的 JPanel 的剩余区域上最大化:

...
this.topPnl = new JPanel();

this.topPnl.setLayout(new BoxLayout(this.topPnl, BoxLayout.X_AXIS));

this.selFileList = new JList(new String[]{"one", "two", "three", "four"});
JScrollPane scroll = new JScrollPane(this.selFileList);

this.topPnl.add(scroll);
...

如果我不在 JScrollPane 中设置 JList 而是直接将其添加到 JPanel,则 JList 看起来足够大以显示所有项目,但我想控制容器的大小,即具有固定大小如果元素的变化数量很高,然后有滚动条,这就是使用 JScrollPane 背后的整个想法。

我想知道我做错了什么以及如何实现我上面描述的目标?

最佳答案

您可能正在寻找setVisibleRowCount() ,这取决于 JListScollable 实现。有一个例子here和一些有用的警告here .

关于java - JScrollPane 在 JPanel 的剩余区域上最大化嵌入组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13203504/

相关文章:

java - 添加带有 actionListener 的新 JButton() 而不声明它

java - 为什么 repaint() 在我的 JPanel 上不起作用?

java - 在循环内创建准备好的语句

Java Swing - 如何堆叠用户名文本字段和密码文本字段

java - 递归时的字符串参数

java - 如何在没有 html 的情况下向 JTextPane 添加超链接?

java - 我在添加关键监听器时犯了什么错误?

java - 用 Java 为简单的棋盘游戏创建图形

java - 在 Java 中添加引号

java - 如何将 JSF 语言环境传播到应用程序中的其他层