Java JScrollPane组件没有';不出现
我正在尝试将JList添加到我的JPanel中,因为它由以下源代码声明,但它不起作用:Java JScrollPane组件没有';不出现,java,swing,jpanel,jscrollpane,jlist,Java,Swing,Jpanel,Jscrollpane,Jlist,我正在尝试将JList添加到我的JPanel中,因为它由以下源代码声明,但它不起作用: public class Game { public static void main(String[] args) throws Exception { UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() ); DefaultListModel<String> defList
public class Game {
public static void main(String[] args) throws Exception {
UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
DefaultListModel<String> defListPlayers = new DefaultListModel<String>();
defListPlayers.addElement("Player 1");
defListPlayers.addElement("Player 2");
JList<String> listPlayers = new JList<String>(defListPlayers);
listPlayers.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
listPlayers.setLayoutOrientation(JList.VERTICAL);
listPlayers.setVisibleRowCount(10);
JScrollPane scroller = new JScrollPane(listPlayers);
scroller.setViewportBorder(new LineBorder(Color.RED));
scroller.revalidate();
JPanel panel = new JPanel();
panel.add(scroller);
JFrame frame = new JFrame;
frame.setContentPane(panel);
frame.pack();
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().repaint();
}
}
公共类游戏{
公共静态void main(字符串[]args)引发异常{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
DefaultListModel defListPlayers=新的DefaultListModel();
解除列表玩家。添加元素(“玩家1”);
删除玩家。添加元素(“玩家2”);
JList-listPlayers=新JList(defListPlayers);
listPlayers.setSelectionMode(ListSelectionModel.SINGLE\u INTERVAL\u SELECTION);
listPlayers.setLayoutOrientation(JList.VERTICAL);
listPlayers.setVisibleRowCount(10);
JScrollPane scroller=新的JScrollPane(ListPlayer);
scroller.setViewportBorder(新的LineBorder(Color.RED));
scroller.revalidate();
JPanel面板=新的JPanel();
面板。添加(滚动条);
JFrame frame=新JFrame;
frame.setContentPane(面板);
frame.pack();
setExtendedState(JFrame.MAXIMIZED_二者);
frame.setVisible(true);
frame.setresizeable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().repaint();
}
}
你知道为什么和怎么做吗?使用a你说的“不工作”到底是什么意思?我想我也想删除scroller.setPreferredSize(新维度(10,10))代码>。发布一篇文章以获得更好的帮助sooner@sasuke:如果您发布了您的代码,我们可以用您的代码向您展示一个适当的示例。否则,您的请求就毫无意义,因为它完全取决于代码的上下文。您可以在此网站上搜索许多正确使用滚动窗格的示例,并进行尝试。不过,首先也是最重要的一点是,从代码中删除所有
setBounds(…)
和所有空布局。@HoverCraftFullOfels:谢谢您的回复,我按照说明调整了源代码。我的玩家列表仍然没有出现!使用a你说的“不工作”到底是什么意思?我想我也想删除scroller.setPreferredSize(新维度(10,10))代码>。发布一篇文章以获得更好的帮助sooner@sasuke:如果您发布了您的代码,我们可以用您的代码向您展示一个适当的示例。否则,您的请求就毫无意义,因为它完全取决于代码的上下文。您可以在此网站上搜索许多正确使用滚动窗格的示例,并进行尝试。不过,首先也是最重要的一点是,从代码中删除所有setBounds(…)
和所有空布局。@HoverCraftFullOfels:谢谢您的回复,我按照说明调整了源代码。我的玩家列表仍然没有出现!