JScrollPane内容未显示

时间:2011-05-28 03:51:26

标签: java swing resize jpanel jscrollpane

我在JPanel中有一个JTextArea,然后放入JScrollPane。当包含JScrollPane的JPanel首次显示时,JScrollPane显示但不显示内容。只要调整JFrame的大小,内容就会显示出来。

JTextArea area = new JTextArea(6, 20);
area.setText("Some test text");

JPanel panel = new JPanel(new BorderLayout());
panel.add(area, BorderLayout.CENTER);

JScrollPane pane = new JScrollPane();
pane.setBounds(20, 20, WIDTH - 40, 300 - 40);
pane.setPreferredSize(new Dimension(WIDTH - 40, 300 - 40));
add(pane);
pane.setViewportView(panel);

3 个答案:

答案 0 :(得分:4)

pane.setBounds(20, 20, WIDTH - 40, 300 - 40); 
pane.setPreferredSize(new Dimension(WIDTH - 40, 300 - 40)); 

这两行代码没有意义(虽然它们不是你问题的原因)

当您使用“null布局”时,将使用第一行。

使用布局管理器时会使用第二个。

它们不应该一起使用。

第二个是首选,因为您应该使用布局管理器。

答案 1 :(得分:2)

在应用程序中,以类似于幻灯片放映的方式交换不同的JPanel。所以这样的代码可以在代码中找到:

panel.remove(slide1);
panel.add(slide2);
panel.repaint();

问题在于第二张幻灯片slide2的所有内容都不会显示出来。解决方案是添加

frame.validate();

其中frame是面板的父窗口。

答案 2 :(得分:0)

timeout

我认为您需要将面板添加到滚动窗格构造函数。