我创建了一个 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/