JLabel setLocation и setBounds методы не работают - PullRequest
0 голосов
/ 07 апреля 2020

Прежде всего, я хорошо знаю о существовании менеджеров по расположению, я просто не хочу использовать его в этом случае.

Я пишу простое главное меню для своего приложения, но что бы я ни делал, изображение (JLabel) всегда устанавливается в левом верхнем углу экрана. Я пытался использовать оба метода (setLocation, setBounds), но это не имеет никакого значения.

Я уверен, что это какая-то глупая ошибка, но я не могу понять это.

Вот мой код:

import javax.swing.*;

public class Main extends JFrame{

    protected ImageIcon createImageIcon(String path,
                                        String description) {
        java.net.URL imgURL = getClass().getResource(path);
        if (imgURL != null) {
            return new ImageIcon(imgURL, description);
        } else {
            System.err.println("Couldn't find file: " + path);
            return null;
        }
    }

    Main() {
        ImageIcon image1=createImageIcon("/monopoly.jpg","");
        JLabel image1l=new JLabel(image1);
        image1l.setLocation(200,200);
        image1l.setBounds(330, 300, 140, 60);
        add(image1l);
    }

    public static void main(String[] args) {
        Main f=new Main();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
        f.pack();
        f.setTitle("Monopoly");
        f.setSize(800,800);
        f.setLocationRelativeTo(null);
        f.setLayout(null);
    }
}
...