Java小程序:setForeground()它到底做什么?以及如何看待它';什么影响?

Java小程序:setForeground()它到底做什么?以及如何看待它';什么影响?,java,applet,Java,Applet,根据“Java-完整参考Java”setForeground()用于设置前景颜色,即显示文本的颜色 现在考虑这个基本的Applet程序,它设置前景和背景颜色,并输出一个字符串: import java.awt.*; import java.applet.*; /* < applet code="Sample" width=1000 height=500> < /applet> */ public class Sample extends Applet { St

根据“Java-完整参考Java”
setForeground()
用于设置前景颜色,即显示文本的颜色

现在考虑这个基本的Applet程序,它设置前景和背景颜色,并输出一个字符串:

import java.awt.*;
import java.applet.*;

/*
< applet code="Sample" width=1000 height=500>
< /applet>
*/

public class Sample extends Applet
{
    String msg;
    // set the foreground and background colors.

    public void init() 
    {
        setBackground(Color.white);
        setForeground(Color.red);
        msg = "Inside init( ) --";
    }

    // Initialize the string to be displayed.
    public void start()
    {
        msg += " Inside start( ) --";
    }

    // Display msg in applet window.
    public void paint(Graphics g)
    {
      msg += " Inside paint( ).";
      g.drawString(msg, 10, 30);
    }
}
import java.awt.*;
导入java.applet.*;
/*


*/
公共类示例扩展小程序
{
串味精;
//设置前景色和背景色。
公共void init()
{
挫折地面(颜色:白色);
设置前景(颜色为红色);
msg=“Inside init()--”;
}
//初始化要显示的字符串。
公开作废开始()
{
msg+=“内部启动()-”;
}
//在小程序窗口中显示消息。
公共空间涂料(图g)
{
msg+=“内部油漆()”;
g、 抽绳(味精,10,30);
}
}
背景颜色可以通过setBackground()更改为任何颜色。
但是无论setForegorund()中给出了什么颜色,文本始终为黑色即它根本不会改变文本颜色。那么,
setForegorund()
的功能/用途是什么,我如何看到它的效果


谢谢

基本上,除非您的代码使用方法
get前台()
,否则它没有任何效果

Swing构建在AWT之上,在调用时使用它,这是
JComponent
的一个受保护的方法,它在其
paint()
方法中用于绘制组件边框等。但是AWT本身没有任何前景色的内部用途,并且默认情况下不用于绘制


您可以使用<代码>图形> SETHOLD(GETFACELATE())< /> >如果您愿意。

是的,正如我已经提到的,SETBACKLATE()与任何颜色一起工作。正如您正在重写的Prtuter(),考虑在Price方法中设置颜色:G.StCube(颜色:红色);给图形对象指定颜色时有什么问题?对不起,我的意思是setForground()是,是g.setColor(color.red);虽然有效,但我的问题是set前台()的效果。ThankyouSetForeground是在一个组件上调用的:一个面板、一个文本字段、一个按钮等。这意味着设置组件的默认绘制方法使用的前景色。只要覆盖绘制,我相信您不能信任此调用,您负责设置图形对象的所有参数。但是,请尝试在绘制方法开始时调用super.paint,因为它应该首先调用小程序的默认绘制方法,并且可能会将图形对象的颜色设置为前景颜色。非常感谢您,正如您所说,setColor(getForeground())inside paint()使用setForeground(color.x)并将文本的颜色更改为init()中定义的x:)