Почему не меняется цвет фона моего JPanel? - PullRequest
0 голосов
/ 26 апреля 2019

Я пытался сделать фон моего JPanel в своем кадре черным. Я могу заставить мои JButtons отображаться на панели, но фон все равно не черный, как я его установил. Я не уверен, что я делаю неправильно.

Я попытался установить фон рамки и всех панелей на черный цвет фона. Я позаботился о том, чтобы все было видно. Я также пытался установить для setOpaque значение true, но ничего не сделал, поэтому удалил его.

Это мой класс кадров:

public class GUI extends JFrame{
    public static void main(String[] args) {
        GUI frame = new GUI();
    }

    GUI(){
        setLayout(new BorderLayout());
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(500,500);
        setTitle("Polygon Maker");
        DrawPane buttonPane = new DrawPane(false);
        add("North", buttonPane);
        DrawPane drawPane = new DrawPane(true);
        add("Center", drawPane);
        }
}

А это мой класс панели:

    DrawPane() {
        drawPane = false;
        setLayout(new FlowLayout());
        setBackground(Color.BLACK);
        setVisible(true);
    }

    DrawPane(boolean draw) {
        drawPane = draw;
        setLayout(new FlowLayout());
        setBackground(Color.BLACK);
        setVisible(true);
        if (!draw)
            buttonSetup();
        else {
            addMouseListener(new Drawing());
            current = new DrawPoly();

        }

    }

Я ожидаю получить пустую черную рамку с 3 кнопками сверху, но вместо этого я получаю пустую белую рамку с 3 кнопками сверху. Я пытался избежать этой проблемы, но теперь она заставляет меня продолжать, и я понятия не имею, что заставляет фон не появляться.

1 Ответ

0 голосов
/ 26 апреля 2019

Вы расширяетесь от Jframe, поэтому вам нужно изменить способ установки цвета, с этого

setBackground(Color.BLACK);

на этот

getContentPane().setBackground(Color.BLACK);
...