我目前在jframe上有多个jpanel。我可以将所有jpanels添加到jframe中,但是当我尝试添加jscrollpane时,没有任何内容显示出来。基本上我只想在jframe上使用jscrollbar / pane,这样我就可以在jpanels的大小离开屏幕时向下滚动。这是我使用的主要代码:
JPanel Jpanel = new JPanel();
JScrollPane Jpane = new JScrollPane();
frame.getContentPane().add(Jpanel);
frame.getContentPane().add(Jpane);
任何帮助将不胜感激。感谢
答案 0 :(得分:1)
您需要将JPanel添加到滚动窗格,然后将滚动窗格添加到框架。 其中一种方法是使用构造函数创建JScrollPane:
JPanel panel = new JPanel();
JScrollPane scrollPane = new JScrollPane(panel);
答案 1 :(得分:1)
1)您发布的代码导致该代码{JFrame
默认情况下已实施BorderLayout
,并且只有一个JComponent
可填写具体area
或叠加JComponent
1}}),只有frame.getContentPane().add(Jpane);
可以在屏幕上显示
2)您必须接受只能JScrollPane
JComponent
JScrollPane
3)LayoutManager
如果使用了正确的AbsoluteLayout
(不是Dimmension
),并且JComponent
的{{1}}宽{{}}来自JViewport
答案 2 :(得分:1)
已经用正确的方法回答了这个问题。我唯一可以想到你可能做错了(因为它不起作用),就是你要将面板添加到jframe中。
当您将面板放在滚动窗格内时,需要将滚动窗格添加到JFrame,而不是将面板添加到JFrame:
JPanel panel = new JPanel();
JScrollPane scrollPane = new JScrollPane(panel);
add(scrollPane); // or if you have a panel inside a panel, add the pane to that panel. ie west.add(scrollPane);
答案 3 :(得分:0)
你能做的是:
JPanel Jpanel = new JPanel();
JScrollPane Jpane = new JScrollPane(Jpanel);
frame.setLayout(new BorderLayout());
frame.add(Jpane, BorderLayout.CENTER);
您的面板未显示的原因是因为您的相框不知道放在哪里。它需要一个布局管理器。
在这里您可以找到一些基本的布局管理器: http://docs.oracle.com/javase/tutorial/uiswing/layout/using.html