Я везде искал решение этой проблемы и читал несколько похожих сообщений, связанных с этой проблемой, но ни один из них не работал у меня.
Я пытаюсь отобразить изображение "b.png" на JButton, и когда я переворачиваю кнопку, значок меняется.
package GUI_JButton;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Gui extends JFrame {
private JButton reg;
private JButton custom;
public Gui() {
super("Title goes here");
setLayout(new FlowLayout());
reg = new JButton("reg button"); // create reg button
add(reg); // add reg button to JFrame
// initialize images
Icon b = new ImageIcon(getClass().getResource("images/imageA.png"));
Icon x = new ImageIcon(getClass().getResource("images/imageB.png"));
custom = new JButton("custom button", b); // create custom button
custom.setRolloverIcon(x);
add(custom); // add button to JFrame
HandlerClass handler = new HandlerClass();
reg.addActionListener(handler);
custom.addActionListener(handler);
}
private class HandlerClass implements ActionListener {
public void actionPerformed(ActionEvent event) {
JOptionPane.showMessageDialog(null,
String.format("%s", event.getActionCommand()));
}
}
}
Изображения находятся в папке с именем images, которая находится в папке src вместе с файлами Gui.java
и файлами TESTMain.java
.
Ошибка, которую я получаю, - это исключение нулевого указателя из Main. я пытался
Icon b = new ImageIcon("images/imageA.png");
Это компилируется, но изображение не отображается. я тоже пробовал
custom = new JButton("custom", new ImageIcon("images/imageA.png"));
А также
custom = new JButton("custom", new ImageIcon(getClass().getResource("images/imageA.png"));
Я знаю, что getClass().getResource()
предпочтительнее, так как изображения должны быть скомпилированы с банкой.
Любые идеи по отображению моих изображений?
getResource("images/imageA.png")
наgetResource("/images/imageA.png")
. - person Andrew Thompson   schedule 19.07.2013