gpt4 book ai didi

Java JFrame pack() 问题

转载 作者:行者123 更新时间:2023-12-01 17:39:52 28 4
gpt4 key购买 nike

我正在尝试使用标准 java 实用程序将图像覆盖在背景图像之上。请参阅下面的图片...

我有似乎可以创建背景图像的代码(你能验证它是否真的有效吗?)我创建了 JPanel 的扩展,用于显示图像(该类称为 ImagePanel)

但是,当程序启动时,JFrame 仅显示第二个图像,然后随着窗口大小的调整而移动。

我希望最初打开窗口时背景图像占据窗口的整个空间。然后,我希望将第二张图像显示在顶部我指定的位置。

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

public class ImageTest {




public static void main(String[] args) {
JFrame frame = new JFrame();
frame.getContentPane().setLayout(null);

JPanel backgroundPanel = new JPanel();
ImageIcon backgroundImage = new ImageIcon("C:\\Documents and Settings\\Robert\\Desktop\\ClientServer\\Poker Table Art\\TableAndChairs.png");
JLabel background = new JLabel(backgroundImage);
background.setBounds(0, 0, backgroundImage.getIconWidth(), backgroundImage.getIconHeight());
frame.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));
backgroundPanel.setOpaque(false);
frame.setContentPane(backgroundPanel);

ImagePanel button = new ImagePanel("C:\\Documents and Settings\\Robert\\Desktop\\ClientServer\\Poker Table Art\\button.png");
JPanel cardContainer = new JPanel(new FlowLayout());


frame.getContentPane().add(cardContainer);

cardContainer.add(button);
cardContainer.setBounds(100, 600, 200, 200);

frame.pack();
frame.setVisible(true);
}
}

alt text http://img189.imageshack.us/img189/9739/image1qi.jpg

alt text http://img186.imageshack.us/img186/1082/image2ll.jpg

最佳答案

I'd like to have the window open initially with the background image taking up the entirety of the window's space.

然后只需创建一个带有图标的 JLabel 并使用该标签作为框架的内容 Pane 。当您打包框架时,它将采用图像的大小。

I'd then like to have the second image displayed on top, at the location that I specify.

对上述标签使用空布局。现在,您可以使用图标创建其他 JLabel,并将它们添加到内容 Pane 并使用 setBounds 放置它们。

关于Java JFrame pack() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2394919/

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