我一直在研究一些简单的Java代码,目的是让图像出现在屏幕上。我已经弄明白了,但奇怪的是,代码只适用于第二次尝试运行它。代码如下:
import javax.swing.*;
public class A3011A {
public static JFrame frame;
public static int delay;
public static void main(String[] args) {
CreateWindow(800, 600, "Frame");
ImageIcon img = new ImageIcon("H:/Intro to Programming/Semester Project/duck.png");
AddImage(50, 0, img);
AddLabel(0, 0, "top left");
AddLabel(300, 300, "another label");
}
public static void CreateWindow(int x, int y, String name) {
frame = new JFrame(name);
frame.setSize(x, y);
frame.setLayout(null);
frame.setVisible(true);
}
public static void AddLabel(int x, int y, String text) {
JLabel label = new JLabel(text);
label.setSize(300, 13);
label.setLocation(x, y);
frame.add(label);
}
public static void AddImage(int x, int y, ImageIcon image) {
JLabel label = new JLabel(image);
label.setSize(image.getIconWidth(), image.getIconHeight());
label.setLocation(x, y);
frame.add(label);
}
}
值得注意的是以下一行:
ImageIcon img = new ImageIcon("H:/Intro to Programming/Semester Project/duck.png");
似乎是问题的根源。如果删除此行,则程序将在第一次运行尝试时运行。这里有什么显而易见的东西吗?
程序运行时没有编译器错误/异常。唯一不对的是窗户;第一次运行时没有出现任何内容。在第二轮或之后,一切都会出现在窗口中。