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())
使用它。
根据 "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())
使用它。