Java 小程序:setForeground() 究竟是做什么的?以及如何查看它的效果?

Java Applet: setForeground() what exactly it does? and how to see it's effect?

根据 "Java - The Complete Reference Java" setForeground() 用于设置前景色,即显示文本的颜色。

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

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);
    }
}

The background colour can be changed to any colour by setBackground() 但是 无论在 setForegorund() 中给出什么颜色,文本总是黑色!!! 即它根本不会改变文本颜色。那么 setForegorund() 的 function/use 是什么,怎么看效果呢?

谢谢

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

Swing 建立在 AWT 之上,在调用 getComponentGraphics() 时使用它 - JComponent 的受保护方法,它在 paint() 方法中使用它来绘制组件边界等。但是 AWT 本身没有任何前景色的内部用途,并且默认情况下不使用它进行绘画。

如果您愿意,可以通过 graphics.setColor(getForeground()) 使用它。