Java 为什么我的JList/JScrollPane这么小?

Java 为什么我的JList/JScrollPane这么小?,java,layout,jscrollpane,jlist,Java,Layout,Jscrollpane,Jlist,当我运行代码时,JList会出现,但它非常小,当我尝试更改其大小时,它不会更改大小。我在做什么?那是错的?很多GUI格式对我来说都是新的。谢谢 public class Panel extends JPanel { //Fields private Dimension dimensions; private JButton button1; private JList list; private JScrollPane listScroller; private String title

当我运行代码时,JList会出现,但它非常小,当我尝试更改其大小时,它不会更改大小。我在做什么?那是错的?很多GUI格式对我来说都是新的。谢谢

public class Panel extends JPanel
{
//Fields
private Dimension dimensions; 
private JButton button1; 
private JList list; 
private JScrollPane listScroller; 
private String title;
private DefaultListModel model; 

/**
 * Constructor 
 */

public Panel()
{
    dimensions = new Dimension(400, 300);
    setPreferredSize(dimensions);
    setBackground(Color.WHITE);
    setLayout(null); //Lets me lay my components out freely 

    button1 = new JButton("New Set"); 
    button1.setBounds(new Rectangle(new Point(150, 250), button1.getPreferredSize()));
    button1.addActionListener(new ButtonListener());
    add(button1);

    String[] titleArray ={title};
    model = new DefaultListModel(); 
    for(String title :titleArray)
    {
        model.addElement(title); 
    }
    list = new JList(model);
    list.setBounds(new Rectangle(new Point(200,200), list.getPreferredSize()));
    add(list);

    listScroller = new JScrollPane(list);
    listScroller.setBounds(new Rectangle(new Point(200,200), listScroller.getPreferredSize()));
    add(listScroller);
}
}

setLayout(null);
”此外,您的模型是空的,因此首选的大小可能是(0,0)。您可以通过简单的display语句轻松验证这一点。使用
setVisibleRowCount(…)
方法允许JList为列表确定适当的大小。@resueman您能进一步解释一下吗?@SeanGui。使用
null
布局从来都不是一个好主意。这看起来可能更容易,但会导致许多意想不到的问题。正确的方法是使用嵌套来创建所需的设计。@Reseeman我明白,我将尝试返回嵌套布局。谢谢