Ошибка отображения изображения в графическом интерфейсе

Итак, я новичок в Java, изучая некоторые основы из видео на YouTube, я учусь создавать GUI/Window и в данный момент пытаюсь отобразить iamges, но я не уверен, что код неправильный / старые или изображения не в нужном месте / месте. Вот что я написал до сих пор. Помощь будет высоко ценится. Пожалуйста и спасибо.

import java.awt.*;
import javax.swing.*;

public class FirstGUI extends JFrame {

    private static Object out;
    private JLabel label;
    private JButton button;
    private JTextField textfield;

    private ImageIcon image1;
    private JLabel label1;

    private ImageIcon image2;
    private JLabel label2;


    public FirstGUI() {

        setLayout (new FlowLayout());

        label = new JLabel("Hi, I'm a label!");
        add(label);

        textfield = new JTextField(15);
        add(textfield);

        button = new JButton("Click me!");
        add(button);

        button = new JButton("No, CLICK ME!!");
        add(button);

        label = new JLabel("This is the end of the program?");
        add(label);



        image1 = new ImageIcon(getClass().getResource("Apiary.png"));
        label1 = new JLabel(image1);

        image2 = new ImageIcon(getClass().getResource("bee.png"));
        label2 = new JLabel(image2);
    }



    public static void main(String[] args) {

        FirstGUI gui = new FirstGUI();
        gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//*     gui.setSize(400, 400);
        gui.setVisible(true);
        gui.setTitle("Hello World");
        gui.pack();



    }

}

Что я получаю в ошибках:

Исключение в потоке "main" java.lang.NullPointerException

at javax.swing.ImageIcon. (Неизвестный источник)

в FirstGUI.(FirstGUI.java:39)

в FirstGUI.main(FirstGUI.java:50)

1 ответ

Решение

Во-первых, вы не добавляете метки к фрейму, поэтому, даже если он будет выполнен, он не будет отображать значки изображений. Поэтому не забудьте добавить метки в рамку:

add(label1);
add(label2);

Во-вторых, я попробовал ваш код, и он работал нормально для меня, он напечатал только ту ошибку, которую вы упомянули, когда я не импортировал значок изображения в пакет, в котором я работаю. Для этого вам нужно сделать следующее:

Щелкните правой кнопкой мыши на вашем пакете src-> import-> General -> File System и выберите next и выберите каталог, содержащий изображения, нажмите "ОК" и затем добавьте изображения, которые вы указали в коде.

Другие вопросы по тегам