无法设置JApplet背景颜色

3
我的问题是,当我尝试为创建的JApplet设置背景颜色时,除了默认灰色之外,我无法得到任何其他颜色。如果有人能够告诉我问题出在哪里,并解释一下,我将非常感激。这个技巧是通过一本教科书学习的,因此我想要理解问题,以便知道发生了什么。感谢您提前的帮助。SDG
public class QuoteApplet extends JApplet
{

    public void paint (Graphics appPage)
    {
        setBackground(Color.YELLOW);

        appPage.drawRect(65,55,255,100);
        //page.drawRect(60,80,225,30);
        //page.drawOval(75,65, 20, 20);
        appPage.drawLine(30,30,30,100);
        appPage.drawLine(40,30,40,100);
        appPage.drawLine(55,45,15,85);

        appPage.drawString("There once lived a man named Oedipus Rex.", 70, 70);
        appPage.drawString("You may have heard about his odd complex.", 70, 90);
        appPage.drawString("His name appears in Freud's index,", 70, 110);
        appPage.drawString("'cause he loved his mother.", 70, 130);
        appPage.drawString("-Tom Lehrer", 200, 150);
    }
}

+1 对于这首有趣的诗歌。同时,好问题。 - user377628
1个回答

6
您想设置applet的contentPane的背景颜色,而不是applet本身。因此,请调用getContentPane().setBackground(...)。并且不要在paint方法中执行此操作。相反,在init()方法中执行此操作。实际上,您很少需要覆盖JApplet的paint方法,特别是在这里。最好在JPanel或其他从JComponent派生的类的paintComponent(...)方法中进行绘制,然后将其添加到contentPane中,或者将其用作contentPane。

@superdem:你应该将init()作为一个单独的方法添加。但是请看我上面的编辑--你本来就不应该覆盖paint(...) - Hovercraft Full Of Eels
谢谢你,如果你说的是真的(我一秒钟也不怀疑),那么我的教科书就是地球上最愚蠢的东西...他们确实跟我安排的一样。我逐字逐句复制了他们的代码,只改变了值... - superdemongob
@superdemongob:你用的是什么书(这样我就可以避免它了)? - Hovercraft Full Of Eels
1
尝试阅读《Java核心技术卷I和卷II》或Deitel和Deitel的《Java编程入门》,两本书都很不错。 - thewhitetulip
我打算购买McGrawHill的Java:完全参考。你有什么想法吗? - superdemongob
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接