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

Я пытаюсь сделать цвет фона моей программы белым (а не серым).

У меня есть класс фреймов, который содержит программу (новый экземпляр этого класса фреймов создается в методе main). У меня есть следующий конструктор:

this.setBackground(Color.WHITE);

На тот случай, если он каким-то образом блокировался другими панелями, я добавлял одну и ту же строку в конструктор каждой панели, имеющейся в моей программе (и я имею в виду каждую).

Тем не менее, ничего не произошло.

Что может быть не так?

1 Ответ

6 голосов
/ 26 января 2012

Если этот код вызывается в конструкторе JFrame, вы не изменяете цвет contentPane JFrame, что и нужно сделать. Сделайте этот вызов на панели содержимого:

getContentPane().setBackground(Color.WHITE);

Другие JPanels, добавленные в GUI, не должны иметь свои цвета, но их непрозрачное свойство должно иметь значение false через myPanel.setOpaque(false); Это позволит любому изображению или цвету за ними быть видимыми. Исключением является область содержимого, которая всегда должна быть непрозрачной.

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

...