setBackground не работает на фоне апплета - PullRequest
0 голосов
/ 28 декабря 2011

Я не верю, что это дубликат, потому что другие вопросы касались JButtons и JPanels.

Мне было интересно, почему следующее в java не работает, как можно предположить:

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

public class Example extends JApplet
{
     public void paint(Graphics page)
     {
        setBackground (Color.cyan);
     }
}

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

1 Ответ

3 голосов
/ 28 декабря 2011

но я использую примеры из учебника

Избавьтесь от учебника.Вы никогда не должны переопределять метод paint () JApplet (это старая техника AWT и не используется с Swing).

Апплеты в Swing аналогичны приложениям в Swing.Вы добавляете компоненты в панель содержимого апплета.Пользовательское рисование, если вам нужно это сделать, выполняется путем переопределения метода paintComponent () в JPanel (или JComponent), а затем вы добавляете панель на панель содержимого.апплет, затем вы меняете фон панели содержимого (или фон панели, которую вы добавляете в ЦЕНТР панели содержимого).Что-то вроде:

getContentPane().setBackground( Color.CYAN );

Этот код будет выполняться в методе init ().

Начните с чтения Swing tutorial .Есть разделы на How to Make Applets и «Выполнение заказной живописи».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...