Java 向JButtons添加图像

Java 向JButtons添加图像,java,swing,jframe,jbutton,imageicon,Java,Swing,Jframe,Jbutton,Imageicon,我想将图像添加到我的JButtons。我曾尝试将滚动图标命令添加到我的一个按钮中,但我一直得到一个异常,即使eclipse没有说有任何错误。我已将图像保存在workspace/projectname/src中,类文件位于其中,它们被称为a和b,它们是JPEG图像 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class button extends JFrame { priva

我想将图像添加到我的JButtons。我曾尝试将滚动图标命令添加到我的一个按钮中,但我一直得到一个异常,即使eclipse没有说有任何错误。我已将图像保存在workspace/projectname/src中,类文件位于其中,它们被称为a和b,它们是JPEG图像

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

    public class button extends JFrame {

    private static final long serialVersionUID = 1L;
    private JButton hi;
    private JButton custom;

    public button() {
        super("The title");
        setLayout(new FlowLayout());

        hi = new JButton("Hi button");

        Icon a = new ImageIcon(getClass().getResource("a.JPEG"));
        Icon b = new ImageIcon(getClass().getResource("b.JPEG"));
        custom = new JButton("custom", a);
        custom.setRolloverIcon(b);
        add(custom);
        add(hi);

        HandlerClass handler = new HandlerClass();
        hi.addActionListener(handler);
        custom.addActionListener(handler);

    }
    private class HandlerClass implements ActionListener {
        public void actionPerformed(ActionEvent event) {
            JOptionPane.showMessageDialog(null, String.format("%s", event.getActionCommand()));
        }
    }
}

import javax.swing.JFrame;
public class buttonm {
    public static void main(String[] args) {
        button hello = new button();
        hello.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        hello.setSize(350,100);
        hello.setVisible(true);
    }
}
按钮类

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

public class Button extends JFrame {

    private JButton button;
    private JPanel p;

    public Button() {
        super("The title");
        p = new JPanel(new BorderLayout());
        button = new JButton();

        ImageIcon icon = new ImageIcon(getClass().getResource("button2.jpg"));
        button.setIcon(icon);
        button.setDisabledIcon(icon);

        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(400, 400);
        p.add(button);
        add(p);

    }
}
你的主课

public static void main(String[] args) {
        Button btn = new Button();
        btn.setVisible(true);
    }

这是猜谜游戏吗。。“猜猜我的例外是什么?”我必须同意@peeskillet的说法。如果你能给我们更多的信息来帮助你,也许我们可以帮助你。请阅读和部分,了解我们需要什么信息。“但是我一直得到一个异常,即使eclipse没有说有任何错误”-您可能还想对异常与编译错误进行一些研究。一般来说,它们彼此无关(除非您得到一个不可编译的源异常),但如果我不得不猜测,我会从无效路径猜测一个NullPointerException。如果您的图像直接位于src的根目录下,并且您的类位于它下面的某个包中,那么您需要在路径的前面放置一个
/
。如果您的映像与java文件位于同一个包中,那么您的路径是正确的,您确实应该发布异常(stacktrace)以获得进一步帮助1)始终复制/粘贴错误或异常输出。2) 另见