Java HTML - 通过单击更改Applet的颜色

时间:2015-10-31 17:59:15

标签: java html colors applet background-color

嘿伙计我有问题。 我正在学习IT,我们开始用Java编程。 因此,我们的任务是使用Java Applet对HTLM站点进行编程,该Java Applet在单击时切换Textboxthing的Back-和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>

所以当我点击Box时没有任何反应 - 请帮助我:)。

1 个答案:

答案 0 :(得分:0)

您无法仅通过name属性与DOM元素进行通信。添加id =&#34; A&#34;到您的applet,并在A标签内添加一些单词以使一切正常。

document.A&lt; ==这是指一个id =&#34; A&#34;

的元素

更新: 您的Java中存在一个错误。 repaint()只是调度你的绘图函数,但告诉系统准备好图形&#34; g&#34;代表你的对象。

您可以在setColor()中设置背景颜色和前景颜色,但是然后调用repaint(),系统获取图形对象并调用您的绘制方法,然后重置前景色和背景色。

您应该添加一个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
}