我的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"文件夹是项目文件的根目录
当我从eclipse将我的代码导出为runnable JAR时,即使它们实际上在JAR中,我设置它的所有文件都会丢失,例如按钮图像和其他文件.我已经getClass().getResource在文件前添加了但是当我尝试运行JAR时甚至没有任何建议,有什么建议吗?
我想在标签上放一个".gif"图像.图像加载,但它是静态的(没有动画).任何猜测为什么?以及如何解决?
我正在使用的代码:
BufferedImage img1=ImageIO.read(TCPServer.class.getResource("filecopy.gif"));
JLabel filetransferpic = new JLabel(new ImageIcon(img1));
Run Code Online (Sandbox Code Playgroud)
注意:我不想用..
JLabel filetransferpic = new JLabel(new ImageIcon("G:\\filecopy.gif"));
Run Code Online (Sandbox Code Playgroud)
..approach.因为在这种方法中,我必须给出驱动路径并将图像放在驱动器中.我想要项目文件夹"src"中的图像.
我有个问题.我不知道如何通过单击JButton来显示图像.
我有一个可以显示和隐藏图像的类:
/**
*
*/
package com.samples;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
/**
* @author
*
*/
public class New2 extends JFrame implements ActionListener {
private static String SHOW_ACTION = "show";
private static String HIDE_ACTION = "hide";
private Image image = null;
private boolean showImage = false;
public New2(String filename) {
setTitle("MyWindow");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setSize(800, 600);
this.image = new ImageIcon("..//src/img/Ster.png").getImage(); …Run Code Online (Sandbox Code Playgroud)