gpt4 book ai didi

java - 将多个 JPanel 放置在彼此之上

转载 作者:行者123 更新时间:2023-12-02 11:17:39 25 4
gpt4 key购买 nike

我有这段代码,它创建一个 JPanel 并将其添加到 JScrollPanel 中。它工作正常,但是当我尝试添加第二个 JPanel 时,它会删除第一个 JPanel 并添加第二个 JPanel。我希望能够将 JPanel 放置在 JPanel 之上,我该怎么做?

// Location of an image:
String file = wfc.getSelectedFile().getPath();

// Creates images from different types:
ImageHandler image = new ImageHandler();
BufferedImage imageData = image.imageData(file);

// Extends JPanel, Layer is a JPanel
Layer layer = new Layer(image.width(), image.height());
layer.setImage(imageData);
layer.setSizeFromLoaded();
// A list of all the JPanels added
Layers.set(Layers.layers.size(), layer);

// Adds a JPanel to the JScrollPanel
imagePane.getViewport().add(layer, BorderLayout.CENTER);

这是完整的方法,它打开一个文件浏览器,然后当选择图像时运行上面的代码

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
WebFileChooser wfc = null;
if(wfc == null){
wfc = new WebFileChooser(this, "Open an Image");
wfc.setSelectionMode(SelectionMode.SINGLE_SELECTION);
wfc.setAvailableFilter(GlobalConstants.IMAGES_AND_FOLDERS_FILTER);
wfc.setChooseFilter(GlobalConstants.IMAGES_FILTER);
wfc.setCurrentDirectory("/Users");
}
wfc.setVisible(true);

if(wfc.getResult() == StyleConstants.OK_OPTION){
String file = wfc.getSelectedFile().getPath();

ImageHandler image = new ImageHandler();
BufferedImage imageData = image.imageData(file);

Layer layer = new Layer(image.width(), image.height());
layer.setImage(imageData);
layer.setSizeFromLoaded();
Layers.set(Layers.layers.size(), layer);

imagePane.getViewport().add(layer, BorderLayout.CENTER);
}
}

最佳答案

您可能希望考虑将面板放入使用 CardLayout 的单个主面板中。 .

这将允许您轻松地在面板之间切换,从而产生分层面板的错觉,而无需手动执行此操作的麻烦。

类似...

JPanel master = new JPanel(new CardLayout());
master.add(new ChildPane()); // Or what ever child you want to add
master.add(new ChildPane()); // Or what ever child you want to add
//...
JScrollPane scrollPane = new JScrollPane(master);

关于java - 将多个 JPanel 放置在彼此之上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13635278/

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