java - 在 JScrollPane 中更新 JPanel 不起作用

标签 java swing jpanel jscrollpane

我创建了一个 JScrollPane 并希望根据从用户那里获得的输入在该 JScrollPane 中显示不同的 JPanel。由于某种原因,我的 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();

最佳答案

使用JScrollPane#setViewportView而不是添加

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

关于java - 在 JScrollPane 中更新 JPanel 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14265516/

相关文章:

java - 如何将 Java 中 main 之外的类中的文本附加到文本字段?

java - 从 CheckBoxTree 节点中删除复选框

java - 画笔型 GUI 中的 paintComponent() 与 paint() 和 JPanel 与 Canvas

java - 48 位 TIFF 格式

java - 何时调用job.getJobID()?

java - ActionListener 不起作用

java - 如何在另一个 JPanel 内的 JPanel 上绘制 Graphics2D?

java - JPanel 中的重绘查询

java - 如何在 Vert.x 中对事件处理程序(来自事件总线)进行单元测试?

java - 一子线程抛出异常就返回主线程