Zuerst einmal mein Code:
Wie man sieht wird ein einfaches fenster mit einem Textlabel erstellt.
Bei einem Doppelklick auf das Label, soll die Fenstergröße verändert werden. Von Eclipse bekomme ich aber den Fehler "Cannot refer to a non-final variable fenster inside an inner class defined in a different method". Soweit ich das übersetzen kann, beschwert sich Eclipse darüber, dass "fenster" in einer Unterklasse verwendet werden soll, es aber nicht darf. Wieso aber kann man System.exit() dann von aufrufen? Weil das final ist? Und wie kann ich es dann erreichen, aus mouseClicked() auf "fenster" zuzugreifen?
Gruß,
Kira[/code]
Code:
public class myclass
{
public static void main(String[] args)
{
JFrame fenster = new JFrame("Überschrift");
fenster.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
JLabel meinlabel = new JLabel("irgendein Text");
fenster.add(meinlabel);
meinlabel.addMouseListener
(
new MouseAdapter()
{
public void mouseClicked(MouseEvent event)
{
fenster.setSize(500,500); // <- funktioniert nicht
//System.exit(1); <- das schon
}
}
);
fenster.setSize(300,200);
fenster.setVisible(true);
}
}
Wie man sieht wird ein einfaches fenster mit einem Textlabel erstellt.
Bei einem Doppelklick auf das Label, soll die Fenstergröße verändert werden. Von Eclipse bekomme ich aber den Fehler "Cannot refer to a non-final variable fenster inside an inner class defined in a different method". Soweit ich das übersetzen kann, beschwert sich Eclipse darüber, dass "fenster" in einer Unterklasse verwendet werden soll, es aber nicht darf. Wieso aber kann man System.exit() dann von aufrufen? Weil das final ist? Und wie kann ich es dann erreichen, aus mouseClicked() auf "fenster" zuzugreifen?
Gruß,
Kira[/code]