Java 为什么我的JList/JScrollPane这么小?
当我运行代码时,JList会出现,但它非常小,当我尝试更改其大小时,它不会更改大小。我在做什么?那是错的?很多GUI格式对我来说都是新的。谢谢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
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我明白,我将尝试返回嵌套布局。谢谢