Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用parent';这是JDialog的favicon?_Java_Swing_Jdialog - Fatal编程技术网

Java 如何使用parent';这是JDialog的favicon?

Java 如何使用parent';这是JDialog的favicon?,java,swing,jdialog,Java,Swing,Jdialog,我正在尝试将favicon分配给JDialog。此代码有效,但图像最终是硬编码的 ImageIcon favImageIcon = new ImageIcon("../images/default.gif"); Image favIconImage= favImageIcon.getImage(); dialog.setIconImage(favIconImage); 父帧已经有一个favicon。如何将JDialog设置为使用其父级的favicon?我尝试了dialog.setIconIm

我正在尝试将favicon分配给JDialog。此代码有效,但图像最终是硬编码的

ImageIcon favImageIcon = new ImageIcon("../images/default.gif");
Image favIconImage=  favImageIcon.getImage();
dialog.setIconImage(favIconImage);

父帧已经有一个favicon。如何将JDialog设置为使用其父级的favicon?我尝试了
dialog.setIconImage(super)但这显然是错误的。

您可以使用jar文件中资源中的图像文件

 URL url =getClass().getResource("/Media/something.png");
 ImageIcon imageIcon = new ImageIcon(url);
这不会是硬编码的

如何设置
JDialog
以使用其父级的favicon

使用父级作为对话框的父级。维斯


这正是我问的原因。是的,
super
无法编译。从家长那里获得favicon的正确语法是什么?如果下面的答案不能解决您的问题,那么您将希望扩展您的问题并包括一个。确实!“这是一条路,”弗罗费尔斯在看了这个问题后,我不确定你的意思。然后我读了评论。。
import java.awt.image.BufferedImage;
import javax.swing.*;

public class DialogIconByParent {

    public static void main(String[] args) {
        Runnable r = new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(
                            UIManager.getSystemLookAndFeelClassName());
                } catch (Exception useDefault) {
                }
                BufferedImage bi = 
                        new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB);

                JFrame f = new JFrame(new DialogIconByParent()
                        .getClass().getSimpleName());
                f.setIconImage(bi);
                f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                f.setLocationByPlatform(true);

                f.setContentPane(new JLabel(new ImageIcon(
                        new BufferedImage(400, 200, BufferedImage.TYPE_INT_RGB))));
                f.pack();
                f.setMinimumSize(f.getSize());

                f.setVisible(true);

                // This hints to use the frame's icon, among other things.
                JDialog d = new JDialog(f); 
                d.add(new JLabel(new ImageIcon(
                        new BufferedImage(250, 100, BufferedImage.TYPE_INT_RGB))));
                d.pack();
                d.setLocationRelativeTo(f);
                d.setVisible(true);
            }
        };
        SwingUtilities.invokeLater(r);
    }
}