setBackground不适用于applet背景

时间:2011-12-28 04:39:08

标签: java swing user-interface awt

我不相信这是重复的,因为其他问题与JButtons和JPanels有关。

我想知道为什么java中的以下内容无法正常工作:

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

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

基本上,当我运行applet时,无论颜色如何,背景都不会改变。我意识到还有其他选择可以获得相同的效果,但我正在使用教科书中的示例,并想知道它为什么在我的机器上不起作用。

1 个答案:

答案 0 :(得分:3)

  

但我正在使用教科书中的例子

摆脱教科书。你永远不应该覆盖JApplet的paint()方法(这是一种旧的AWT技术,不与Swing一起使用)。

Swing中的Applet就像Swing中的应用程序一样。您将组件添加到applet的内容窗格中。如果需要,可以通过覆盖JPanel(或JComponent)的paintComponent()方法来完成自定义绘制,然后将面板添加到内容窗格中。

如果要更改小程序的背景,则更改内容窗格的背景(或添加到内容窗格的CENTER的面板的背景)。类似的东西:

getContentPane().setBackground( Color.CYAN );

此代码将在init()方法中执行。

首先阅读Swing tutorial。有关How to Make Applets和'表演自定义绘画'的部分。