Цвет фона JFrame не изменится

1

Я просмотрел много ответов здесь и изменил свой код, но он все еще работает неправильно. Может кто-нибудь помочь мне исправить это, пожалуйста?

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

public class LoginGUI extends JFrame {



    LoginGUI() { 

        Container c = getContentPane();
        c.setBackground(Color.BLACK);
        JPanel p = new JPanel();
        JLabel title = new JLabel("HTML Generator");
        title.setForeground(Color.black);
        p.add(title);
        c.add(p);
        title.setOpaque(true);

        setSize(400, 400);
        setVisible(true);
    }

    public static void main(String[] args) { 
        new LoginGUI();
    }

}
Теги:
background
colors
swing
jframe

1 ответ

2
Лучший ответ

Свойство JPanel opaque по умолчанию истинно, а по умолчанию JFrame - BorderLayout. Добавление только одного компонента (JPanel) в фрейм будет растягивать его полный размер кадра, как это делает BorderLayout. Таким образом, непрозрачная панель, покрывающая весь кадр, объясняет результаты, которые вы получаете.

Три простых исправления. Либо установите для свойства JPanel opaque значение false, либо просто установите фон в JPanel или установите макет кадра в GridBagLayout или FlowLayout

  • 0
    Установка p.setOpaque (false); исправил мою проблему, чем вы очень сильно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню