[英]Query about applets in java
我不明白為什么paint()中的println()語句執行兩次。這是代碼-
import java.awt.*;
import java.applet.*;
public class FirstApplet extends Applet
{
public void init()
{
System.out.println(getBackground());
}
public void paint(Graphics g)
{
setBackground(Color.CYAN);
setForeground(Color.RED);
g.drawString("This is my first Applet",250,250);
System.out.println(getBackground());
}
}
輸出:
java.awt.Color [r = 255,g = 255,b = 255]
java.awt.Color [r = 0,g = 255,b = 255]
java.awt.Color [r = 0,g = 255,b = 255]
有人可以解釋一下為什么paint()中的println()執行兩次嗎?
public void paint(Graphics g)
{
setBackground(Color.CYAN); // will trigger repaint()!
setForeground(Color.RED); // will trigger repaint()!
g.drawString("This is my first Applet",250,250);
System.out.println(getBackground());
}
每當工具包認為有必要這樣做時,都會調用paint(Graphics)
方法。 有很多事情會導致repaint()
(進而導致對paint(Graphics)
的調用)。 他們之中有一些是:
顯然,繪畫不會僅在程序員希望(或期望)的時候發生。 如果該“在需要時繪畫”是應用程序的問題,那就是應用程序。 問題排序,而不是工具箱。
對您的查詢:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.