[英]Java HTML - Change Color of Applet by Click
嗨,我有問題。 我目前正在研究IT,我們開始使用Java進行編程。 因此,我們的任務是使用Java Applet對HTLM網站進行編程,該Java Applet在單擊時切換Textboxthing的Back-ground和Foregroundcolor。 所以這是代碼,我絕對不確定出什么問題了:
Java文件:
import java.applet.*; //Applet
import java.awt.*; // Graphics, Color
public class HalloWeltPlus extends Applet
{
Color vordergrundfarbe = Color.white;
Color hintergrundfarbe = Color.black;
public void paint( Graphics g)
{
setForeground ( vordergrundfarbe);
setBackground ( hintergrundfarbe);
g.drawString("Hello World...",50,50); // Bildschirmausschrift erzeugen
}
public void setColor()
{
setForeground (hintergrundfarbe);
setBackground (vordergrundfarbe);
repaint( 100L);
}
}
HTML文件:
<html>
<!-- Diese Seite bindet das HalloWelt - Applet ein. -->
<head>
<title>
HalloWeltPlus
</title>
</head>
<body>
<!-- Applet -->
<applet
code=HalloWeltPlus.class name=A width=170 height=100>
</applet>
<a onClick="document.A.setColor()"></a>
<p>
</body>
</html>
因此,當我單擊“框”時,什么都沒發生-請幫助我:)
您不能僅通過name屬性與DOM元素進行通信。 在您的applet中添加id =“ A”,並在A標簽內添加一些單詞,以使所有內容正常運行。
document.A <==這是指id =“ A”的一個元素
更新:Java中存在一個錯誤。 repaint()只是調度對您的paint函數的調用,但是告訴系統為您准備圖形“ g”對象。
您可以在setColor()中設置背景色和前景色,但隨后調用repaint(),系統將獲取圖形對象並調用您的paint方法,然后重置前景色和背景色。
您應該添加一個init方法來僅設置一次前台。
//only called on time by applet system
public void init() {
setForeground ( vordergrundfarbe);
setBackground ( hintergrundfarbe);
}
//called everytime you call repaint()
public void paint( Graphics g)
{
g.drawString("Hello World...",50,50); // Bildschirmausschrift erzeugen
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.