Ich habe hier ein Programm gemacht, welches ein Fenster mit zwei Buttons öffnet.
Wenn ich jetzt etwas dazu gebe damit wenn man auf die Buttons klickt sich MessageBoxen öffnen:
Dann kommt beim kompilieren die Fehlermeldung:
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Fenster {
public static void main(String[] args) {
JFrame Fenster = new JFrame("Hallo, wie geht es dir?");
Fenster.setSize(600, 500);
Fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel Platte = new JPanel();
Platte.setLayout(new GridLayout());
JButton Knopf[] = new JButton[2];
String Text[] = {"Gut", "Schlecht"};
String Diagnose[] = {"Das freut mich!", "Das tut mir aber Leid..."};
for (int i = 0; i < Knopf.length; i++) {
Knopf[i] = new JButton(Text[i]);
Platte.add(Knopf[i]);
}
Fenster.setContentPane(Platte);
Fenster.setVisible(true);
}
}
Wenn ich jetzt etwas dazu gebe damit wenn man auf die Buttons klickt sich MessageBoxen öffnen:
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Fenster {
public static void main(String[] args) {
JFrame Fenster = new JFrame("Hallo, wie geht es dir?");
Fenster.setSize(600, 500);
Fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel Platte = new JPanel();
Platte.setLayout(new GridLayout());
JButton Knopf[] = new JButton[2];
String Text[] = {"Gut", "Schlecht"};
String Diagnose[] = {"Das freut mich!", "Das tut mir aber Leid..."};
for (int i = 0; i < Knopf.length; i++) {
Knopf[i] = new JButton(Text[i]);
[COLOR="DarkRed"]Knopf[i].addActionListener (new ActionListener() {
public void actionPerformed (ActionEvent x) {
JOptionPane.showMessageDialog(null, Diagnose[i]);
}
});[/COLOR]
Platte.add(Knopf[i]);
}
Fenster.setContentPane(Platte);
Fenster.setVisible(true);
}
}
Code:
Fenster.java:20: local variable Diagnose is accessed from within inner class; needs to be declared final
JOptionPane.showMessageDialog(null, Diagnose[i]);
^
Fenster.java:20: local variable i is accessed from within inner class; needs to be declared final
JOptionPane.showMessageDialog(null, Diagnose[i]);
^
2 errors