Hallochen zusammen,
ich versuche gerade ein wenig Java zu lernen. Allerdings habe ich das Problem, dass bei dem einen Programm aus dem Buch ein Fehler drin zu sein scheint, bei dem ich nicht in der Lage bin, ihn eigenständig zu korrigieren...
Es geht dabei um das Erlernen von Arrays. Es sollen 7 Rechtecke mit drawRect gezeichnet werden (pro Wochentag eins) in das jeweils die Niederschlagsmenge eingetragen werden soll. Das eintragen soll sich folgendermaßen abspielen: ein Textfeld nimmt die Niederschlagsmenge auf und duch Klicken in das gezeichnete Rechteck soll dahin in ein Array der Wert übertragen werden. Zusätzlich wird am Ende dann nochmals die Gesamtsumme der Niederschläge in dieser Woch errechnet.
Das ist der Quellcode laut Buch:
Und das die Fehlermeldung beim Kompilieren:
Mir ist durchaus bewusst, dass target nicht deklariert ist, ich weiss allerdings auch nicht, wie es deklariert werden könnte.
Vielen Dank schonmal.
MfG Markus
ich versuche gerade ein wenig Java zu lernen. Allerdings habe ich das Problem, dass bei dem einen Programm aus dem Buch ein Fehler drin zu sein scheint, bei dem ich nicht in der Lage bin, ihn eigenständig zu korrigieren...
Es geht dabei um das Erlernen von Arrays. Es sollen 7 Rechtecke mit drawRect gezeichnet werden (pro Wochentag eins) in das jeweils die Niederschlagsmenge eingetragen werden soll. Das eintragen soll sich folgendermaßen abspielen: ein Textfeld nimmt die Niederschlagsmenge auf und duch Klicken in das gezeichnete Rechteck soll dahin in ein Array der Wert übertragen werden. Zusätzlich wird am Ende dann nochmals die Gesamtsumme der Niederschläge in dieser Woch errechnet.
Das ist der Quellcode laut Buch:
Code:
import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;
public class Niederschlag extends Applet implements ActionListener, MouseListener
{
private Table regenDaten;
private TextField wert;
public void init()
{
regenDaten = new Table();
Label anweisung = new Label("Geben Sie die Zahl ein und klicken Sie auf das Feld:");
add(anweisung);
wert = new TextField(10);
add(wert);
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 = 20;
private final int anfangY = 60;
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, 100, 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];
}
}
}
Code:
cannot resolve Symbol
symbol : variable target
location: class java.awt.event.ActionEvent
if (event.target instanceof TextField) (Dreieck unter dem Punkt)
Mir ist durchaus bewusst, dass target nicht deklariert ist, ich weiss allerdings auch nicht, wie es deklariert werden könnte.
Vielen Dank schonmal.
MfG Markus