java - JScrollPane 正在改变它的大小

标签 java swing

我的问题是这样的:

我做了一个JPanel。我想在其中添加一个带有滚动条的 JList。所以我使用 JScrollPane。

在这里您可以看到该应用程序的图片。大的白色矩形是 JPanel 的大小。在第二张图片中,您可以看到当我将滚动 Pane 添加到代码中时会发生什么。

Size of the JPanel

Size of the JList with JScrollPane.

这是我使用的代码:

public class GUI extends JFrame{

    DefaultListModel m = new DefaultListModel();
    JList myList = new JList(m);
    JScrollPane scrollPane = new JScrollPane(myList);
    JPanel listPanel = new JPanel();

    public GUI(){
    //Stuff about Frame Size, title, and other boring things

    scrollPane.setViewportView(myList);
    listPanel.add(scrollPane);
    this.add(listPanel);
    }
}

我以前用过,很有效。好吧,我遇到了同样的问题,但它消失了。我以与上次相同的方式编写了这段代码。但这次不行了。

提前谢谢大家。

最佳答案

使用JList,您可以简单地使用setVisibleRowCount来调整JScrollPane的可视区域的大小

另一个问题是JPanel默认使用FlowLayout,您可能需要更改使用BorderLayout之类的东西

已更新

正如所指出的,如果列表包含大量元素,可以使用setPrototypeValue来提高效率

关于java - JScrollPane 正在改变它的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24520935/

相关文章:

java - 从 vector 创建的 JButton 上的 actionListener

java - JPanel 表单扩展以填充 JScrollpane - 违背了目的

java - 切换 fragment 时滑动选项卡滞后

java - 创建嵌套列表

java - 更改 JComboBox 中滚动条的大小

java - 如何使用 JTextArea 设置 JScrollPane 背景透明和 JScrollBarr 可见?

java - 将折线图转换为条形图

java - 如何从类中绘制形状到小程序?

Java 刷新屏幕

java - JList 中所选项目的背景颜色不起作用