我有一个使用JFrame
/创建的小型“hello world”应用程序JPanel
,它在我的 IDE(Netbeans)中完美运行。我使用 仅在屏幕上绘制一个字符串对其进行了测试Graphics.drawString()
,它在浏览器和构建的 .Jar 文件中都能完美运行。
我决定添加一个图像只是为了测试它(我是 Java 新手),并且应用程序继续在 IDE 中运行,但是构建的 .Jar 文件没有启动任何东西,或者给出错误或任何东西。
这是2个类文件:
Boxy_Main.java:
package boxy;
import javax.swing.JFrame;
import java.awt.*;
public class Boxy_Main extends JFrame {
public static Boxy_Main main;
public Boxy_Main() {
add(new Board());
setTitle("Boxy");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(467, 700);
setLocationRelativeTo(null);
setVisible(true);
setResizable(true);
}
public static void main(String[] args) {
main = new Boxy_Main();
}
}
板子.java:
package boxy;
import javax.swing.JPanel;
import java.awt.*;
import javax.swing.*;
public class Board extends JPanel {
public Graphics2D g2d;
public Graphics g;
public Image hello_image;
public Board() {
this.set_properties();
}
public void set_properties() {
this.hello_image = new ImageIcon(Board.class.getResource("../images/LKRZV.jpg")).getImage();
}
public void paint(Graphics g) {
this.g = g;
this.g2d = (Graphics2D) g;
this.g2d.drawImage(this.hello_image, null, this);
this.g.drawString("hello", 100, 80);
this.g.drawString("world", 100, 94);
}
}
如果我注释掉
this.hello_image = new ImageIcon(Board.class.getResource("../images/LKRZV.jpg")).getImage();
和
this.g2d.drawImage(this.hello_image, null, this);
它继续完美地工作。
我自己试图弄清楚这一点,我无法通过谷歌或堆栈溢出找到任何东西。这是一个很难制作的搜索短语。
任何人都知道为什么它会在 NetBeans 中运行,而不是作为独立的 .Jar 运行?