我有一個程序,由JFrame中的四個JButton組成。我想添加圖像到JButtons。問題是我似乎無法添加它們,儘管嘗試了多種方法。編譯時,輸出爲input == null
。這些圖像與我的.java
文件存儲在相同的文件夾中,所以我無法弄清楚它們爲什麼不顯示。爲什麼我的圖片沒有添加到我的JButton中?
主要類:
import java.awt.GridLayout;
import java.awt.Image;
import javax.imageio.ImageIO;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class AutoProgram extends JFrame {
private static String[] files = {"workA","programmingA","leisureA","writingA"};
private static JButton[] bIcons = new JButton[4];
private static Image[] bImg = new Image[4];
public AutoProgram() {
super("Automation Project V.1");
JPanel autoIcons = new JPanel();
autoIcons.setLayout(new GridLayout(2,2));
// Initialize the four buttons (w/ images)
for(int i = 0; i < files.length; i++) {
bIcons[i] = new JButton();
try {
bImg[i] = ImageIO.read(getClass().getResource(files[i].toLowerCase() + ".png"));
bIcons[i].setIcon(new ImageIcon(bImg[i]));
} catch (Exception ex) {
System.out.println(ex);
}
autoIcons.add(bIcons[i]);
}
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.PAGE_AXIS));;
mainPanel.add(autoIcons);
add(mainPanel);
pack();
}}
窗口類:
public class Window {
public static void main(String[] args) {
AutoProgram frame = new AutoProgram();
frame.setSize(315,315);
frame.setLocationRelativeTo(null);
frame.setFocusable(true);
frame.setResizable(true);
frame.setVisible(true);
}
}
任何幫助將不勝感激。謝謝!
感謝您的建議/信息!儘管我仔細檢查過他們的名字和擴展名,但我仍然無法顯示我的圖像。我也刪除了'.toLowerCase',但是這並沒有解決它。圖像沒有損壞,因爲我嘗試了使用按鈕的其他圖像,他們也沒有工作。看來我的方法根本就不是工作期。 :/ – SputnicK
仔細檢查大寫字母的名稱,雙點等...它的工作原理與我自己的一些圖像一起運行,檢查圖像與您所說的相同,這些都是我最好的投注 – Frakcool
Did我的答案真的解決了你的問題?你有它的工作? @SputnicK – Frakcool