JScrollPane正在改变它的大小

时间:2014-07-01 23:57:51

标签: java swing

我的问题是这样的:

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

在这里您可以看到该应用程序的图片。大白色纠结是JPanel的大小。在第二张图片中,您可以看到将Scrollpane添加到代码时会发生什么。

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);
    }
}

我之前使用过它,它起作用了。好吧,我遇到了同样的问题,但它消失了。我已经像上次那样编写了这段代码。但这一次它不起作用。

先谢谢你们。

3 个答案:

答案 0 :(得分:1)

使用JList,您只需使用setVisibleRowCount来调整JScrollPane

的可查看区域的大小

另一个问题是JPanel默认使用FlowLayout,您可能希望更改BorderLayout之类的内容

<强>更新

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

答案 1 :(得分:0)

好的,显然我必须setPreferredSize。你不能只设置面板的大小,你也需要设置jscrolpane的大小!

答案 2 :(得分:0)

默认情况下,除非您使用类似网格包布局......

此外,为了在Java中开发UI,安装一个名为WindowBuilder的eclipse插件非常有用