嘿伙计我有问题。 我正在学习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时没有任何反应 - 请帮助我:)。
答案 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
}