Я просмотрел много ответов здесь и изменил свой код, но он все еще работает неправильно. Может кто-нибудь помочь мне исправить это, пожалуйста?
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();
}
}
Свойство JPanel
opaque по умолчанию истинно, а по умолчанию JFrame
- BorderLayout
. Добавление только одного компонента (JPanel
) в фрейм будет растягивать его полный размер кадра, как это делает BorderLayout
. Таким образом, непрозрачная панель, покрывающая весь кадр, объясняет результаты, которые вы получаете.
Три простых исправления. Либо установите для свойства JPanel
opaque значение false, либо просто установите фон в JPanel
или установите макет кадра в GridBagLayout
или FlowLayout