Hier
1 | class SetTimeAction implements ActionListener
|
2 | {
|
3 | status = 8; // warum kommt hier ein Fehler?
|
4 | public void actionPerformed(ActionEvent e)
|
5 | {
|
6 |
|
7 | if(e.getActionCommand()=="hours")
|
8 | {
|
9 | // mache etwas....
|
10 |
|
11 | }
|
12 | }
|
13 | }
|
fängt doch erst mal eine neue Klasse an.
Daher ja auch das Schlüsselwort 'class'.
Dann definierst du wie die Klasse heisst und von wem sie erbt.
Und dann?
Dann müsstest du erst mal die Methoden der Klasse auflisten. Hast du ja
hier auch gemacht
1 | public class averagespeed extends JFrame
|
2 | {
|
3 |
|
4 | averagespeed()
|
5 | {
|
6 | ...
|
7 | }
|
8 |
|
9 |
|
10 | public static void main(String[] args)
|
11 | {
|
12 | ....
|
13 | }
|
14 | }
|
eine ausführbare Anweisung kann nur innerhalb einer Methode einer Klasse
stehen!
Nur bitte, innerhalb welcher Methode steht dann das
Da ist keine Methode definiert.
Das hier
1 | public class averagespeed extends JFrame
|
2 | {
|
3 |
|
4 | int status=2;
|
ist was anderes! Das ist eine Initialisierung! Erkennbar daran, dass die
Wert-'Zuweisung' bei der Variablendefinition steht. Da wird in erster
Linie eine Member-Variable definiert
und damit man da nicht lang fackeln muss, wird sie auch gleich noch
intialisiert.
Aber den Fall hast du ja hier nicht
1 | class SetTimeAction implements ActionListener
|
2 | {
|
3 | status = 8; // warum kommt hier ein Fehler?
|
das ist keine Initialisierung. Das ist eine hundsordinäre Zuweisung! Und
die kann als solches nur in einer Methode stehen. Das kann jetzt im
Konstruktor sein
1 | class SetTimeAction implements ActionListener
|
2 | {
|
3 |
|
4 | SetTimeAction()
|
5 | {
|
6 | status = 8;
|
7 | }
|
oder in irgendeiner anderen Member-Funktion
1 | class SetTimeAction implements ActionListener
|
2 | {
|
3 |
|
4 | public void foo()
|
5 | {
|
6 | status = 8;
|
7 | }
|
aber egal wie, es muss auf jeden Fall innerhalb einer Methode sein!