Hab folgendes Programm aus einem Javabuch (Java für Studenten) versucht auszuführen. Aber anscheinend (wie auch bei anderen Beispielen in diesem Buch, durch übersetzung aus dem Englischen) haben sich Fehler eingeschlichen.
Und zwar bekomme ich folgende Fehlermeldung:
symbol : variable target
location: class java.awt.event.ActionEvent
if(event.target instanceof TextField) {
Hab auch schon in der API nachgelesen aber nichts sinnvolles zu target gefunden. Kann mir jemand weiterhelfen damit das Programm funktioniert?
Und zwar bekomme ich folgende Fehlermeldung:
symbol : variable target
location: class java.awt.event.ActionEvent
if(event.target instanceof TextField) {
Hab auch schon in der API nachgelesen aber nichts sinnvolles zu target gefunden. Kann mir jemand weiterhelfen damit das Programm funktioniert?
Code:
import java.awt.*;
import java.awt.event.*;
public class Niederschlag extends Frame implements ActionListener,MouseListener{
private Table regenDaten;
private TextField wert;
public Niederschlag (String title) {
super(title);
setLayout(null);
setVisible(true);
setSize(400,300);
}
public void init() {
regenDaten = new Table();
Label anweisung = new Label("Geben Sie die Zahl ein und"+
" klicken Sie auf das Feld:");
add(anweisung);
anweisung.setBounds(25,25,300,25);
wert = new TextField(10);
add(wert);
wert.setBounds(75,50,100,25);
wert.addActionListener(this);
this.addMouseListener(this);
}
public void paint(Graphics g){
regenDaten.anzeigen(g);
}
public void actionPerformed(ActionEvent event) {
if(event.target instanceof TextField) {
int neuerWert = Integer.parseInt(wert.getText());
regenDaten.setzeWert(neuerWert);
repaint();
}
}
public void mouseClicked(MouseEvent event){
int y = event.getY();
regenDaten.elementAuswaehlen(y);
repaint();
}
public void mouseReleased(MouseEvent event){
}
public void mousePressed(MouseEvent event){
}
public void mouseEntered(MouseEvent event){
}
public void mouseExited(MouseEvent event){
}
}
class Table{
private final int tabellenGroesse = 7;
private int [] regen = new int[tabellenGroesse];
private int index;
private int neuerWert;
private int summe = 0;
private final int anfangX = 25;
private final int anfangY = 100;
private final int boxHoehe = 20;
private final int boxBreite = 60;
public void anzeigen(Graphics g){
int y = anfangY;
for(int s = 0; s < regen.length; s++){
g.drawRect(anfangX, y, boxBreite, boxHoehe);
g.drawString(Integer.toString(regen[s]), anfangX, y + boxHoehe*3/4);
y = y + boxHoehe;
}
werteAddieren();
g.drawString("Gesamte Niederschlagsmenge ist " +summe, 200,100);
}
public void elementAuswaehlen(int y) {
index = (y-anfangY)/boxHoehe;
if (index < 0 || index >= regen.length)return;
regen[index] = neuerWert;
}
public void setzeWert(int wert){
neuerWert = wert;
}
private void werteAddieren() {
summe = 0;
for (int s = 0; s < regen.length; s++)
summe = summe + regen[s];
}
}