Java Applet:setForeground()到底是做什么的?以及如何看待它的效果?

时间:2015-12-14 08:23:29

标签: java applet

按照&#34; Java - 完整参考Java&#34; 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); } } 用于设置前景色,即显示文本的颜色。

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

The background colour can be changed to any colour by setBackground()

setForegorund()但是无论setForegorund()内部给出的颜色是什么,文本总是黑色!!! ,即它根本不会改变文本颜色。那么SELECT posts.post_id, post_details, ((SELECT(COUNT(id) FROM comments WHERE comments.post_id = posts.post_id)) + (SELECT(COUNT(id) FROM likes WHERE likes.post_id = posts.post_id))) AS weight FROM posts ORDER BY weight DESC 的功能/用途是什么,我怎样才能看到它的效果呢?

谢谢

1 个答案:

答案 0 :(得分:2)

基本上,除非您的代码使用方法getForeground(),否则它无效。

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

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