gpt4 book ai didi

java - 如何将ImageIcon 添加到JDialog 中?

转载 作者:行者123 更新时间:2023-11-29 03:37:22 25 4
gpt4 key购买 nike

我试图创建一个 float 对话框,其中包含加载器 gif 图像和一些文本。我有以下类(class):

public class InfoDialog extends JDialog {
public InfoDialog() {
setSize(200, 50);
setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
setUndecorated(true);
setLocationRelativeTo(null);

URL url = InfoDialog.class.getClassLoader().getResource("loader.gif");
ImageIcon loading = new ImageIcon(url);
getContentPane().add(new JLabel("Logging in ... ", loading, JLabel.CENTER));
}
}

但是,当我打电话时:

   InfoDialog infoDialog = new InfoDialog()
infoDialog.setVisible(true);

显示一个空对话框。对话框中未显示 ImageIcon 和 Label。

我在这段代码中做错了什么?

非常感谢。

最佳答案

图像通常放在“资源”源文件夹中,

enter image description here
然后作为字节流访问,

package com.foo;

import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

public class Demo
{
private static final String IMAGE_URL = "/resource/bar.png";

public static void main(String[] args)
{
createAndShowGUI();
}

private static void createAndShowGUI()
{
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
try
{
JDialog dialog = new JDialog();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setTitle("Image Loading Demo");

dialog.add(new JLabel(new ImageIcon(ImageIO.read(getClass().getResourceAsStream(IMAGE_URL)))));

dialog.pack();
dialog.setLocationByPlatform(true);
dialog.setVisible(true);
}
catch (IOException e)
{
e.printStackTrace();
}
}
});
}
}

制作摩根·弗里曼。

enter image description here

关于java - 如何将ImageIcon 添加到JDialog 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14801079/

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