Ответ 1
Почему окна не голубые, как ожидалось?
Проблема в том, что область, где отображается содержимое JFrame
, на самом деле является "областью содержимого", а не содержимым самого JFrame
.
Следовательно, следующая строка:
mainFrame.setBackground(Color.CYAN);
Изменяет цвет JFrame
, но на самом деле это не та часть, которая сразу же отображается, когда отображается JFrame
.
Необходимо изменить цвет того, что называется "панель содержимого" (см. Как использовать корневые панели для рисунок), изменив приведенную выше строку следующим образом:
mainFrame.getContentPane().setBackground(Color.CYAN);
Использование фреймов в Swing может быть неожиданно неинтуитивным в начале, поэтому я настоятельно рекомендую взглянуть на ресурсы, которые я перечисл в нижней части этого ответа.
Есть ли разница между Color.CYAN
и Color.CYAN
?
Нет, между ними нет разницы - они оба являются константами в классе Color
, которые являются Color
самими объектами, Единственное различие заключается в именах констант.
Константы с именами нижнего регистра были введены, когда был введен класс Color
(который, как представляется, JDK 1.0, поскольку в спецификации Java API для класса Color
нет обозначения "Так как" ), а в верхнем регистре имена были добавлены позже в JDK 1.4.
Вероятно добавление прописных именованных констант было добавлено, чтобы константные имена в классе Color
соответствовали Code Conventions для языка программирования Java, который в Раздел 9: Соглашения об именах утверждает, что константы должны быть во всех заглавных букв.
Ресурсы
Для получения дополнительной информации о том, как использовать Frames, следующие ресурсы из Учебники Java будут интересны:
-
Как сделать кадры - информация о том, как создавать фреймы.
-
Как использовать корневые панели - более конкретная информация о панелях, включая иллюстрацию того, как разные панели соотносятся друг с другом.
- Использование контейнеров верхнего уровня