Java HTML - 通过点击更改小程序的颜色
Java HTML - Change Color of Applet by Click
大家好,我有个问题。
我目前正在学习 IT,我们开始使用 Java 进行编程。
所以我们的任务是用 Java 小程序编写一个 HTLM 站点,该小程序在单击时切换文本框的背景色和前景色。
所以这是代码,我绝对不确定哪里出了问题:
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>
所以当我点击框时没有任何反应 - 请帮助我 :)
您无法仅通过名称属性与 DOM 元素通信。在你的小程序中添加 id="A",并在 A 标签中添加一些单词,使一切正常。
document.A <== this指的是id="A"
的一个元素
更新:
您的 Java 中存在错误。 repaint() 只是安排调用您的绘画函数,但会告诉系统代表您准备好图形 "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
}
大家好,我有个问题。 我目前正在学习 IT,我们开始使用 Java 进行编程。 所以我们的任务是用 Java 小程序编写一个 HTLM 站点,该小程序在单击时切换文本框的背景色和前景色。 所以这是代码,我绝对不确定哪里出了问题:
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>
所以当我点击框时没有任何反应 - 请帮助我 :)
您无法仅通过名称属性与 DOM 元素通信。在你的小程序中添加 id="A",并在 A 标签中添加一些单词,使一切正常。
document.A <== this指的是id="A"
的一个元素更新: 您的 Java 中存在错误。 repaint() 只是安排调用您的绘画函数,但会告诉系统代表您准备好图形 "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
}