Почему кнопка на весь экран?

Почему кнопка на весь экран?
Код который я использую

import javax.swing.*; //импорт методов из пакета
import java.awt.*; //импорт методов из пакета

public class Test_2 extends JFrame { // создаём класс и наследуем его от JFrame
    JButton button = new JButton("Button"); //создаём кнопку

    Test_2() { //делаем конструктор
        super("Games Catalog"); // название программы
        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); // набор дефолтных прав для вычесления размера экрана
        setSize(dim.width, dim.height); //установка размера JFrame
        setDefaultCloseOperation(EXIT_ON_CLOSE); // что бы программа закрывалась
        setExtendedState(JFrame.MAXIMIZED_BOTH); // что бы программа сразу разварачивалась во весь экран
        button.setBackground(new Color(255, 255, 255, 50)); // что бы кнопка была такого цвета и на 50% прозрачная
        button.setBounds(dim.width / 2,dim.height / 8,dim.width / 8, dim.height/16); // положение и размер кнопки

        Container container = this.getContentPane(); // контейнер (точно не понимаю зачем он наверное что бы элементы в нём были видимыми)

        container.add(button); //добавление в контейнер кнопки (по идее что бы она была видимая)

        JPanel panel = new JPanel(); // в душе не чаю зачем
        panel.setLayout(null); // что бы layouts были с значением null (типа выключаем horizontal vertical layout)
        setVisible(true); // что бы программа была видимая (точно не знаю)
    }

    public static void main(String[] args) { // главный метод для запуска программы
        Test_2 run = new Test_2(); // этот код отвечает за то что бы программа запустилась
        run.setVisible(true); // этот код отвечает за то что бы программа запустилась
    }
}

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


Ответы (1 шт):

Автор решения: igo

Попробуйте добавлять кнопку на панель, а панель в контейнер

 Test_2() { //делаем конструктор
        super("Games Catalog"); // название программы
        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); // набор дефолтных прав для вычесления размера экрана
        setSize(dim.width, dim.height); //установка размера JFrame
        setDefaultCloseOperation(EXIT_ON_CLOSE); // что бы программа закрывалась
        setExtendedState(JFrame.MAXIMIZED_BOTH); // что бы программа сразу разварачивалась во весь экран
        button.setBackground(new Color(255, 255, 255, 50)); // что бы кнопка была такого цвета и на 50% прозрачная
        button.setBounds(dim.width / 2,dim.height / 8,dim.width / 8, dim.height/16); // положение и размер кнопки

        Container container = this.getContentPane(); // контейнер (точно не понимаю зачем он наверное что бы элементы в нём были видимыми)

        // container.add(button); //добавление в контейнер кнопки (по идее что бы она была видимая)

        JPanel panel = new JPanel(); // в душе не чаю зачем
        panel.add(button);
        panel.setLayout(null); // что бы layouts были с значением null (типа выключаем horizontal vertical layout)
        container.add(panel);
        setVisible(true); // что бы программа была видимая (точно не знаю)
    }
→ Ссылка