首页 > 解决方案 > JList 在添加到 JScrollPane 时消失

问题描述

我不知道为什么会发生这种情况,我已经查找了几乎所有关于此的 Stack Overflow 问题。错误是,当我添加一个JScrollPaneto 时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);

标签: javaswingjscrollpanejlist

解决方案


您应该将边界应用于您的滚动窗格而不是您的列表

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

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


推荐阅读