简单的ImageIcon问题

时间:2011-12-21 14:02:49

标签: java image swing

我无法在我的按钮上显示图标。我已经从书中复制了这段代码,因为我是初学者,正在尝试掌握Java编程。不幸的是,如果没有让这个工作,我无法进步,其他练习基于GUI图像。我相信我已按照确切的步骤操作,希望有人可以提供帮助!

以下是简单的代码:

package Chapter13;

import javax.swing.*;

/** @author Chris */
public class TestButtonIcons extends JFrame
{
    public static void main(String[] args)
    {
        JFrame frame = new TestButtonIcons();
        frame.setTitle("ButtonIcons");
        frame.setSize(200, 100);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

    public TestButtonIcons()
    {
        ImageIcon usIcon = new ImageIcon("image/usIcon.gif");
        ImageIcon caIcon = new ImageIcon("image/caIcon.gif");
        ImageIcon ukIcon = new ImageIcon("image/ukIcon.gif");

        JButton jbt = new JButton("Click it", usIcon);
        jbt.setPressedIcon(caIcon);
        jbt.setRolloverIcon(ukIcon);

        getContentPane().add(jbt);
    }
}

File Hierachy:

正如您所看到的,我已经复制了两次“图像”文件,试图尝试调试它。尽管照片没有全部显示,但所有图像都在“图像”文件夹中。

File Hierachy

3 个答案:

答案 0 :(得分:2)

当你从netbeans运行时,你需要在源包之外创建图像文件夹,而当你直接执行jar时,你需要将可执行jar文件和图像文件夹放在同一个文件夹或同一个地方

答案 1 :(得分:1)

BookExcercises似乎有点问题;这不是一个正常的项目。 一个普通的NetBeans项目(您可以在Projects选项卡右侧的Files选项卡中看到所有项目):Source Packages下显示了一个 src 目录。构建项目会填充目标目录。现在,构建会将.class文件放在那里并复制您的图像。 运行(项目)将使用目标目录作为类路径运行。 运行文件但是可能无法在目标目录中找到图像。

解决方案取决于BookExcercises项目。您可以为每个练习创建一个新项目。取决于。

答案 2 :(得分:1)

如果您使用命令提示运行程序,则只需将此图像文件夹粘贴到chapter13包文件夹(包含TestButtonIcons.class)旁边。

或者,如果您使用某些IDE,请检查编译内容的位置。再次将图像文件夹粘贴到chapter13包文件夹(包含TestButtonIcons.class)旁边。这将需要按预期运行程序。

此致