Verändern einer Variable im ActionListener

Status
Nicht offen für weitere Antworten.
F

filouweb

Gast
Hallo,

ich habe folgendes Problem:

Ich möchte beim Klick auf einen Button eine Variable weiterzählen lassen. Dazu möchte ich einen ActionListener aufrufen, der die (bereits vorhandene) Variable dann um eins erhöht.
Der ActionListener kann jedoch nur auf "final" Variablen zugreifen und die sind wiederum nicht veränderbar.
Ich verstehe beim besten Willen nicht, wie ich das hinbekommen soll!

Schon jetzt danke für eure Hilfe!


filouweb
 
S

SlaterB

Gast
das final zählt nur für lokale Variablen und lokale Variablen zu ändern macht doch keinen Sinn,
die erstellende Methode wird zum Zeitpuntk des Buttonklicks doch hoffentlich längst beendet sein,

verändern kannst du Klassenattribute
 
G

Guest

Gast
:roll: Ich verstehe garnichts mehr!
Konkret: Ich habe beispielsweise folgenden Code:


Code:
[...]
public class Main_Class {
	


	public static void main(String[] args) throws Exception {
[...]
JButton weiter = new JButton("weiter");

int zaehler = 0

			
ActionListener weitergeklickt = new ActionListener() {
public void actionPerformed( ActionEvent e ) {

zaehler = zaehler + 1;


}
	}; 

weiter.addActionListener(weitergeklickt);

[...]

Der Action Listener soll die Variable zaehler um eins erhöhen.
 
S

SlaterB

Gast
was bringt es dir, die Variable zaehler zu erhöhen?
die main-Methode wird dann doch schon längst vorbei sein
 
G

Guest

Gast
In dem Programm geht es darum, dass nach dem weiter-Klick ein neuer Inhalt ausgegeben wird. Dieser Klick erfolgt dann mehrmals hintereinander und jedesmal kommt ein anderer Inhalt (wie z.B. bei Windows-Assistenten). Um den richtigen Inhal einzublenden muss der Action Listener dann natürlich wissen, der wievielte Klick das war. Also zählt er mit.
 
S

SlaterB

Gast
wenn die zaehler-Information nur innerhalb des ActionListeners benötigt wird, ist es doch noch unverständlicher, dafür die umgebende Methode zu benutzen,
quasi als Abladeplatz für eigene Variablen..
so nicht

aber so:

Code:
public class Test
{
    public static void main(String[] args)
    {
        ActionListener weitergeklickt = new ActionListener() { 
            private int zaehler = 4;
            
            public void actionPerformed( ActionEvent e ) { 

            zaehler = zaehler + 1; 


            } 
        };


    }
}
 
G

Guest

Gast
Ich bin einfach zu dumm! Natürlich! Ich habe gerade Vergessen, dass man zwischen "ActionListener weitergeklickt = new ActionListener() {" und "public void actionPerformed( ActionEvent e ) {" auch Befehle etc. schreiben kann!

Danke für die schnelle Hilfe, super. Ich stand gerade auf dem Schlauch! Jetzt geht's und ich habs kapiert!
 
G

Guest

Gast
Eh, sorry, habe ich gerade vergessen:

Was mache ich, wenn es so einen ActionListener auch noch für "zurück" gibt. Dann muss der ja auch an die Variable!
 
S

SlaterB

Gast
suchs dir aus:

Code:
public class Test
{
    public static void main(String[] args)
    {
        final int[] zaehlerArray = new int[1];

        class WeiterAL
            implements ActionListener
        {
            private int zaehler = 4;

            public void actionPerformed(ActionEvent e)
            {
                zaehlerArray[0]++;
                zaehler++;
            }

            public void decZaehler()
            {
                zaehler--;
            }

        };

        final WeiterAL weitergeklickt = new WeiterAL();
        
        final ActionListener back = new ActionListener()
            {

                public void actionPerformed(ActionEvent e)
                {
                    zaehlerArray[0]--;
                    weitergeklickt.decZaehler();
                }

            };

    }
}
 
G

Guest

Gast
So, jetzt hat wirklich alles geklappt!
Nur noch eine Verständnisfrage:
Warum funktioniert das mit dem Array, wenn ich statt dessen (zum Test) jedoch eine "normale" Variable einsetze, geht es nicht. Nur zum Verständnis, ich will es ja wirklich verstehen!
 

HoaX

Top Contributor
if würde nur einen listener machen und anhand des actionCommand entscheiden was ich darin tue

Code:
String ac = e.getActionCommand();
if ("AC_WEITER".equals(ac)) {
  zaehler++;
} 
else if ("AC_ZURUECK".equals(ac)) {
  zaehler--;
}
 

HoaX

Top Contributor
weil du beim array den _inhalt_ des arrays änderst, das array selbst ist ja noch das gleiche. würdest du versuchen der variablen ein anderes array zuzuweisen hättest du das selbe problem wie zuvor
 
G

Guest

Gast
Ok, super, jetzt weiß ich bescheid! Das war schon mal bei einer Programmspielerei von mir ein Problem und ich habe einfach keine Lösung gefunden! Aber jetzt weiß ich ja wie's geht!...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Die Y Koordinate von einer anderen Klasse auch verändern Java Basics - Anfänger-Themen 1
M Von einer Klasse aus, Objekte einer anderen Klasse verändern. Java Basics - Anfänger-Themen 2
M Klassen Durch den ActionListener das GUI einer anderen Klasse verändern Java Basics - Anfänger-Themen 8
X Collections Reihenfolge bestimmter Objekte in einer ArrayList verändern Java Basics - Anfänger-Themen 2
D .class-Datei innerhalb einer .jar-Datei verändern Java Basics - Anfänger-Themen 4
A Von einer Klasse aus die Eingabe einer anderen verändern Java Basics - Anfänger-Themen 3
P Array in einer Methode verändern Java Basics - Anfänger-Themen 6
J Kann man Daten innerhalb einer Datenstruktur verändern? Java Basics - Anfänger-Themen 4
O Inhalt einer .txt Datei verändern Java Basics - Anfänger-Themen 9
K Hintergrundfarbe einer Tabellen-Zelle verändern Java Basics - Anfänger-Themen 2
JavaBeginner22 Button Text verändern Java Basics - Anfänger-Themen 1
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
H OOP Werte mit Set verändern Java Basics - Anfänger-Themen 6
M Was muss ich verändern damit ich es so ausgegeben bekomme wie auf dem Foto? Java Basics - Anfänger-Themen 2
A Haben KNNs ein Gedächtnis, lernen etwas oder verändern sich, während sie nicht trainieren, aber aktiv sind? Java Basics - Anfänger-Themen 3
J Frage dazu Variablen klassenübergreifend zu verändern Java Basics - Anfänger-Themen 22
A Variablen zum final verändern Java Basics - Anfänger-Themen 4
A Kann man eine Methode als Variable speichern und danach noch verändern? Java Basics - Anfänger-Themen 6
S Verändern der Liniendicke Java Basics - Anfänger-Themen 5
V Vererbung Subklasse soll Superklasse verändern Java Basics - Anfänger-Themen 2
S werte von objekten in schleife verändern Java Basics - Anfänger-Themen 14
N Sicherheitsnummer erstellen und verändern können Java Basics - Anfänger-Themen 1
C Rekursiven Programmcode verändern Java Basics - Anfänger-Themen 11
A JLabel mit button drücken verändern Java Basics - Anfänger-Themen 6
J Wert bei Objekterzeugung verändern Java Basics - Anfänger-Themen 12
L JTable Tagebuch Spaltenhöhe verändern Java Basics - Anfänger-Themen 3
M Listener für Button - Wert von Variablen verändern Java Basics - Anfänger-Themen 14
D Mit Buttonklick Farbe der anderen Buttons verändern? Java Basics - Anfänger-Themen 2
G Im ActionListener eine "äußere" Variable verändern Java Basics - Anfänger-Themen 13
E RTF/DOC(x) textteile ersetzen/verändern Java Basics - Anfänger-Themen 0
W aus Methode auf JLabel zugreifen und Image verändern Java Basics - Anfänger-Themen 1
W JLabel in Main aus Thread verändern. Java Basics - Anfänger-Themen 4
I For Schleife - Variable verändern Java Basics - Anfänger-Themen 4
C Im Array zählen und verändern Java Basics - Anfänger-Themen 5
C Finden und verändern Java Basics - Anfänger-Themen 1
J Erste Schritte String verändern Java Basics - Anfänger-Themen 3
S Rollen verändern, Interfaces austauschen wie? Java Basics - Anfänger-Themen 10
Streeber Jar dekompilieren, Code verändern und als .jar speichern Java Basics - Anfänger-Themen 5
K Windows Kontextmenü verändern Java Basics - Anfänger-Themen 5
M Zahlen verändern nach Zeit Java Basics - Anfänger-Themen 6
TheSorm Obercalsse von Unterclasse verändern Java Basics - Anfänger-Themen 3
C Input/Output Hilfe..txt Datei zeile verändern und Ausgabe ..Hilfe Java Basics - Anfänger-Themen 11
L Platz auf JButtons verändern Java Basics - Anfänger-Themen 18
O Bereits "gepostete" Strings in der Konsole verändern? Java Basics - Anfänger-Themen 2
G über JButton Action einen anderen Button verändern Java Basics - Anfänger-Themen 7
J Android R.Java verändern!? Java Basics - Anfänger-Themen 6
M Felder mit Methode verändern Java Basics - Anfänger-Themen 11
I Shortcut verändern Java Basics - Anfänger-Themen 9
P GUI - Layout per Laufzeit erstellen/verändern? Java Basics - Anfänger-Themen 6
S String verändern Java Basics - Anfänger-Themen 15
I Im JFrame Inhalte verändern per Methode aus anderer Class Java Basics - Anfänger-Themen 5
K In ArrayList Daten verändern Java Basics - Anfänger-Themen 8
J Collections Auf ein bestimmtes Objekt in der Liste zugreifen und Werte verändern + Anschließend Sortieren... Java Basics - Anfänger-Themen 8
F Klassenübergreifend String verändern Java Basics - Anfänger-Themen 5
R Benutzeroberfläche verändern Java Basics - Anfänger-Themen 4
H BufferedImage DPI verändern Java Basics - Anfänger-Themen 5
J Mit JS, Text und Bilder von Webseite verändern... Java Basics - Anfänger-Themen 10
B ComboBox(editable) - Text verändern Java Basics - Anfänger-Themen 7
S String dauerhaft mit replaceAll verändern Java Basics - Anfänger-Themen 3
V "TAB" komplett verändern Java Basics - Anfänger-Themen 10
Z Anzahl der Stellen nach dem Komma verändern. Java Basics - Anfänger-Themen 7
C ComboBoxModel mit Daten der Datenbank verändern Java Basics - Anfänger-Themen 2
C jPanel im jPanel verändern Java Basics - Anfänger-Themen 15
B JPanel nachträglich verändern Java Basics - Anfänger-Themen 20
StrikeTom *.txt-datei verändern|wie? Java Basics - Anfänger-Themen 5
S Eigenes Objekt temporär verändern? (Clone)? Java Basics - Anfänger-Themen 12
E Breite des Schiebers in JscrollPane verändern Java Basics - Anfänger-Themen 2
J Ausgelesenen Dateipfad verändern Java Basics - Anfänger-Themen 5
B Ausgabe verändern Java Basics - Anfänger-Themen 6
L Methode über for-schleife aufrufen und verändern Java Basics - Anfänger-Themen 7
L Methode über for-schleife aufrufen und verändern Java Basics - Anfänger-Themen 5
R Textdatei im Internet verändern... Java Basics - Anfänger-Themen 4
B Hintergrundfarbe laufend verändern Java Basics - Anfänger-Themen 14
B Collection während Iteration verändern Java Basics - Anfänger-Themen 7
D kleine Passwortabfrage erstellen incl. Method zum verändern Java Basics - Anfänger-Themen 7
G Variable welche in anderer Klasse liegt, verändern. Java Basics - Anfänger-Themen 2
M Text in Konsole schreiben, den man irgendwie verändern kann. Java Basics - Anfänger-Themen 9
G JLabel nachträglich verändern, bzw. ImageIcon ändern? Java Basics - Anfänger-Themen 3
C Bild in JTable verändern (nach einem Klick auf Zelle) Java Basics - Anfänger-Themen 4
M JTable grösse verändern Java Basics - Anfänger-Themen 6
F [Map] Eintrag gezielt verändern Java Basics - Anfänger-Themen 3
T GridLayout % Verändern? Java Basics - Anfänger-Themen 3
B Button Text auf Knopfdruck verändern Java Basics - Anfänger-Themen 3
G Font Color von JLabel verändern Java Basics - Anfänger-Themen 1
G jProgressBar value aus anderer Klasse heraus verändern Java Basics - Anfänger-Themen 7
G Einzelne Datei im jar verändern ? Java Basics - Anfänger-Themen 5
G Mauszeiger verändern? Java Basics - Anfänger-Themen 1
F Grösse JTextField verändern Java Basics - Anfänger-Themen 2
G Anzahl Textfelder zur Laufzeit verändern. Java Basics - Anfänger-Themen 4
G String verändern Java Basics - Anfänger-Themen 4
G Länge eines Array trimmen oder dynamisch verändern. Java Basics - Anfänger-Themen 3
M String in Liste von Objekten suchen und verändern? Java Basics - Anfänger-Themen 8
S Boolean während while-schleife verändern? Java Basics - Anfänger-Themen 6
S Cursor Form und oder Farbe verändern, geht das???? Java Basics - Anfänger-Themen 4
S .txt-Datei einlesen und verändern Java Basics - Anfänger-Themen 18
G applet verändern Java Basics - Anfänger-Themen 8
C Klassenattribut über Konstruktor verändern Java Basics - Anfänger-Themen 6
G Problem bei Dateikopieren + leicht verändern Java Basics - Anfänger-Themen 7
T Button:Größe verändern Java Basics - Anfänger-Themen 8
T Arrays teilweise verändern Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben