JScrollPane添加到框架问题

时间:2012-03-12 13:29:57

标签: java swing jpanel jscrollpane

我目前在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);

任何帮助将不胜感激。感谢

4 个答案:

答案 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

的{1}}

答案 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