Java小程序:setForeground()它到底做什么?以及如何看待它';什么影响?
根据“Java-完整参考Java”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
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:)