gpt4 book ai didi

java - 拥有多个带有滚动 Pane 的面板

转载 作者:行者123 更新时间:2023-12-02 04:19:07 25 4
gpt4 key购买 nike

我创建了两个面板和一个主面板。每个面板都包含一个非常大的图像,我希望它们都可以滚动以查看图像的其余部分。但是当我在主面板中添加两个面板并运行它时,第一个面板太大以至于覆盖了第二个面板。我如何为两个面板实现 ScrollPane?

import java.awt.BorderLayout;
import javax.swing.*;

public class BoardFrame extends JFrame {

JPanel mainPanel = new JPanel(new BorderLayout());

JLabel jLabel = new JLabel();
JPanel jPanelNorth = new JPanel();
JScrollPane scrollPane = new JScrollPane();

JLabel jLabel2 = new JLabel();
JPanel jPanelSouth = new JPanel();
JScrollPane scrollPane2 = new JScrollPane();

public BoardFrame() {
jLabel.setIcon(new ImageIcon("an image here"));
jPanelNorth.add(jLabel);

jLabel2.setIcon(new ImageIcon("an image here"));
jPanelSouth.add(jLabel2);

mainPanel.add(jPanelNorth, BorderLayout.NORTH);
mainPanel.add(jPanelSouth, BorderLayout.SOUTH);

add(mainPanel);


//where would I use this?
//scrollPane.setViewportView();

}
}

最佳答案

Each panel contains a very large image>

//JPanel mainPanel = new JPanel(new BorderLayout());
JPanel mainPanel = new JPanel(new GridLayout(0, 1));

您可能需要使用 GridLayout,以便每个滚动 Pane 占据框架的一半,以便尽可能多地显示每个图像。

//JScrollPane scrollPane = new JScrollPane();
JScrollPane scrollPane2 = new JScrollPane(jPanelNorth);

使用滚动 Pane 的最简单方法是使用您想要显示的组件创建滚动 Pane ,滚动 Pane 将为您将组件添加到视口(viewport)。

  //mainPanel.add(jPanelNorth, BorderLayout.NORTH);
mainPanel.add(scrollPane); // don't need the constraint when using GridLayout.

然后将滚动 Pane 添加到主面板,因为滚动 Pane 包含带有图像的面板。

关于java - 拥有多个带有滚动 Pane 的面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32982598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com