我的GUI出错了.尝试设置标题栏图标,然后将其包含在Runnable JAR中.
BufferedImage image = null;
try {
image = ImageIO.read(getClass().getClassLoader().getResource("resources/icon.gif"));
}
catch (IOException e) {
e.printStackTrace();
}
frame.setIconImage(image);
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
at GUI.<init>(GUI.java:39)
at GUI.main(GUI.java:351)
Run Code Online (Sandbox Code Playgroud)
图像位于正确的目录中,"resources"文件夹是项目文件的根目录
我使用Swing of Java创建了一个GUI.我现在必须设置一个sample.jpeg图像作为我放置组件的框架的背景.如何做到这一点?
我试过使用它,它不起作用
singleplayerButton.setBounds(20, 20, 200, 100);
Run Code Online (Sandbox Code Playgroud)
我不知道为什么,有人可以帮我解决这个问题吗?
我的完整页面代码在这里
package gmine;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class gmine implements ActionListener {
JFrame interfaceFrame;
JButton singleplayerButton, multiplayerButton, optionsButton, quitButton;
public gmine() {
JFrame.setDefaultLookAndFeelDecorated(false);
interfaceFrame = new JFrame("G-Mine B0.4");
interfaceFrame.setSize(800,600);
interfaceFrame.setLayout(new GridLayout(9,1, 20, 15));
singleplayerButton = new JButton("SinglePLayer");
singleplayerButton.addActionListener(this);
interfaceFrame.add(singleplayerButton);
singleplayerButton.setBounds(20, 20, 200, 100);
multiplayerButton = new JButton("MultiPlayer");
multiplayerButton.addActionListener(this);
interfaceFrame.add(multiplayerButton);
optionsButton = new JButton("Options");
optionsButton.addActionListener(this);
interfaceFrame.add(optionsButton);
quitButton = new JButton("Quit");
quitButton.addActionListener(this);
interfaceFrame.add(quitButton);
interfaceFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
interfaceFrame.setVisible(true);
}
public void actionPerformed(ActionEvent a) …Run Code Online (Sandbox Code Playgroud)