在JScrollPane中更新JPanel无法正常工作

时间:2013-01-10 19:12:35

标签: java swing jpanel jscrollpane

我创建了JScrollPane,并希望在JPanel中显示不同的JScrollPane,具体取决于我从用户那里获得的输入。出于某种原因,我的JScrollPane仍为空白,并且从不描绘Panel中的内容。

private JScrollPane panelView;

// Creating my ScrollPane with a blank JPanel
panelView = new JScrollPane(new JPanel());
// Scenario1 is my top level JPanel, also contains a JTree
scenario1.add(panelView, BorderLayout.CENTER);

当我获得更新显示的JPanel的操作时的代码。我已经通过调试器确认我正确地使用了这段代码。

// Remove previous displayed JPanel within JScrollPane
panelView.removeAll();
if(node.equals(nodes.loginDefaultUser))
    {
        loginDefaultUserPanel = new LoginDefaultUserPanel();    
        panelView.add(loginDefaultUserPanel);
    }
    else if(node.equals(nodes.addUsers))
    {
        addUsersPanel = new AddUsersPanel();
        panelView.add(addUsersPanel);
    }
    else if(node.equals(nodes.getVersions))
    {
        getVersionsPanel = new GetVersionsPanel();
        panelView.add(getVersionsPanel);
    }
    panelView.revalidate();
    panelView.repaint();

1 个答案:

答案 0 :(得分:2)

使用JScrollPane#setViewportView代替add

您可能会发现正在审核How to use Scroll Panes使用