java - 如何在 JScrollPane 中添加 JPanel,然后再次添加 JPanel?

标签 java swing jpanel jbutton jscrollpane

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

我有一个 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 的 View 端口,要么在构造时添加组件。

关于java - 如何在 JScrollPane 中添加 JPanel,然后再次添加 JPanel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53335045/

相关文章:

java - 同步JAVA-文件锁

java - 由 : java. lang.VerifyError 引起:无法链接 com/fasterxml/jackson/databind/type/ReferenceType:无法从最终类继承

java - 如何在运行后将 swing 组件文本更新为不同的区域设置

java - 哪一种更适合游戏开发? Jpanel还是jframe?

java - 从另一个 Java/BlueJ 类更改 JTextField

java - 如何在JPanel上使用GridLayout显示图像?

java - 基于ComboBox Value Java设置字段

java - Android:对 JSON 进行排序

Java setFullScreenWindow() 保持在最前面

JAVA - 如何让用户只能使用顶部的框架?