Java代码仅适用于第二次运行尝试(DrJava)

时间:2016-09-28 13:32:09

标签: java image drjava

我一直在研究一些简单的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");

似乎是问题的根源。如果删除此行,则程序将在第一次运行尝试时运行。这里有什么显而易见的东西吗?

程序运行时没有编译器错误/异常。唯一不对的是窗户;第一次运行时没有出现任何内容。在第二轮或之后,一切都会出现在窗口中。

0 个答案:

没有答案