如何在 JScrollPane 中添加一个 JPanel,然后再添加一个 JPanel?

How to add a JPanel in a JScrollPanel and then add in a JPanel again?

现在我已经搜索了 Whosebug,但找不到任何人问同样的问题。

我有一个 JPanel,其中有一个 JScrollPane,里面有一个 JPanel。 我正在尝试将 JButton 添加到 JScrollPane 内的 JPanel,并且在我将 JScrollPane 添加到代码之前它起作用了。

问题是 JButton 不再显示了。

我对该部分的代码是:

//----- Second Panel -----
JPanel secondPanel = new JPanel();
secondPanel.setBorder(new LineBorder(Color.black, 1, false));
secondPanel.setLayout(new GridLayout(2,1));

//----- Upgrade Scroll Pane -----
JScrollPane upgradeScrollPane = new JScrollPane();
upgradeScrollPane.setBorder(new LineBorder(Color.black,1,false));

//----- Upgrade Panel -----
JPanel upgradePanel = new JPanel();
upgradePanel.setLayout(new GridLayout(44,5));

//----- Reinforced index finger -----
Upgrades.rifButton = new JButton();
loadImage(Upgrades.rifButton, "resources/Upgrades/Cursor/Reinforced index finger.png");
Upgrades.rifButton.addActionListener(e -> Upgrades.rif());
Upgrades.rifButton.setToolTipText("Test");
upgradePanel.add(Upgrades.rifButton);

//Adding Upgrade Panel in Upgrade Scroll Pane
upgradeScrollPane.add(upgradePanel);

//Adding Upgrade Scroll Pane in Second Panel
secondPanel.add(upgradeScrollPane);

我真的不知道我做错了什么。

是的,它是 cookie Clicker 的副本,我只是想边做边学 :D

upgradeScrollPane.add(upgradePanel); 

这是错误的做法。相反,要么设置 JScrollPane 的视口,要么在构造时添加组件。