簡體   English   中英

Java HTML-通過單擊更改小程序的顏色

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM