【问题标题】:My imageIcon is not working?我的 imageIcon 不工作?
【发布时间】:2014-05-14 21:39:03
【问题描述】:

我正在尝试设置一个 JFrame imageIcon,但由于某种原因它没有显示在 JFrame 中。

  ImageIcon img  = new ImageIcon("stop.jpg");

  frame.setIconImage(img.getImage());

我创建了一个 ImageIcon 变量,然后将该变量用于 getImage(),但它不起作用。有什么原因它不起作用吗?

问题:为什么 ImageIcon 不起作用?

类:

import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.ImageIcon;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.UIManager;
import java.awt.Toolkit;

public class TestMenu extends JFrame {
    private static final long serialVersionUID = 1L;
    private JPanel myPanel;

    private static void setLookFeel() {
         try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
         } catch (Exception ex) { }
    }

    public static void main(String[] args) {
        setLookFeel();
        ImageIcon img  = new ImageIcon("stop.jpg");
        TestMenu frame = new TestMenu();
        frame.setIconImage(img.getImage());
        frame.setVisible(true);
    }

    public TestMenu() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);

        JMenuBar menuBar = new JMenuBar();
        setJMenuBar(menuBar);

        JMenu mnNewMenu = new JMenu("TestA");
        menuBar.add(mnNewMenu);

        JMenuItem Item1 = new JMenuItem("TestAA");
        Item1.addActionListener(new MyMenuListener(Item1));
        mnNewMenu.add(Item1);

        JMenu Item2 = new JMenu("TestB");
        menuBar.add(Item2);

        JMenu Item3 = new JMenu("TestBB");
        Item2.add(Item3);

        JMenuItem Item4 = new JMenuItem("TestBB-B");
        Item4.addActionListener(new MyMenuListener(Item4));
        Item3.add(Item4);

        myPanel = new JPanel();
        myPanel.setBorder(new EmptyBorder(25, 25, 25, 25));
        myPanel.setLayout(new BorderLayout(10, 10));
        setContentPane(myPanel);
    }
}

【问题讨论】:

  • 检查图像的路径是否正确(特别是如果您正在使用 EDI:请确定用作根目录的内容)
  • 部署时,这些资源可能会变成embedded-resource。在这种情况下,资源必须由URL 而不是File 访问。查看标签的info page,了解形成URL的方法。
  • 图像存储在哪里(特别是与您的程序相关)?

标签: java swing jframe jpanel


【解决方案1】:

这对我来说很好,检查:

1.图片的名称(Java 区分大小写)Stop.jpg 而不是 stop.jpg

2。图片的路径(可能不在同一个文件夹中)。 即"../images/stop.jpg""/images/stop.jpg"

【讨论】:

  • @DougHauf 然后检查#1:区分大小写查找图像名称。
【解决方案2】:

您的图片保存在哪里?您的图片路径可能不正确:

ImageIcon img  = new ImageIcon("stop.jpg");

您应该使用基于您的班级的路径。这里例如图片存储在包图片中。

new ImageIcon(MyClass.class.getResource("/images/image.png"));

【讨论】:

  • 它保存在与.java文件相同的目录中。
  • 也调整我的答案
猜你喜欢
  • 2015-07-25
  • 2011-12-31
  • 2013-12-21
  • 1970-01-01
  • 2016-10-08
  • 2014-12-19
  • 2015-02-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多