添加到 JScrollPane 时 JList 消失

JList disappears when added to JScrollPane

我不知道为什么会这样,我几乎查阅了所有与此相关的 Stack Overflow 问题。 错误是,当我将 JScrollPane 添加到 JList 时,没有显示任何内容。即使我将它添加到框架中。

JList mainlist = new JList();
JScrollPane listScroller = new JScrollPane(mainlist);
listScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
listScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);

mainlist.setToolTipText("List of People");
mainlist.setFont(new Font("Consolas", Font.BOLD, 13));
int pos = mainlist.getModel().getSize();
DefaultListCellRenderer renderer =  (DefaultListCellRenderer)mainlist.getCellRenderer();  
renderer.setHorizontalAlignment(JLabel.CENTER);  
mainlist.setModel(model);
mainlist.setForeground(Color.GREEN);
mainlist.setBackground(new Color(44, 47, 51));
mainlist.setBounds(10, 108, 780, 248);
mainlist.setFixedCellHeight(20);
mainlist.setFixedCellWidth(30);
mainlist.setBorder(new EmptyBorder(10,10, 10, 10)); 
frm.getContentPane().add(listScroller);

您应该将边界应用到您的 scrollPane 而不是您的列表

listScroller.setBounds(10, 108, 780, 248);

还要确保您的内容窗格具有 null 布局,以便 setBounds() 工作或更好地使用边框布局并将 preferred&maximum Size() 设置为适合您的布局