ActionListener, Methoden und Variablen

Schönen guten Tag, mein Pseudonym ist _ShadowRaven_ (Ja, ich bestehe auf die Unterstriche) und ich habe ein/zwei Fragen.

Hier mein "Code":

[Java]
package main;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.*;

public class Main{
int intvar1=0,intvar2=0,intvar3=0 //hier geht es noch eine Weile weiter
JFrame mainframe = new mainframe("Frame1");
mainframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainframe.setLayout(new GridLayout(10,3));
mainframe.setSize(420,420);

JFrame anzeigeframe = new JFrame("Anzeige");
anzeigeframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
anzeigeframe.setSize(450,100);

JButton jbtn1 = new JButton();
jbtn1.setIcon(new ImageIcon("bilder/img1.png"));
jbtn1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent btn1prssd { intvar1=intvar1+1 } });

JButton jbtn2 = new JButton();
jbtn2.setIcon(new ImageIcon("bilder/img2.png"));
jbtn2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent btn2prssd { intvar2=intvar2+1 } });
//Hier werden weitere JButtons definiert, alle nach dem selben Muster
mainframe.add(jbtn1);
mainframe.add(jbtn2);
//Hier werden die JButtons hinzugefügt
String intvar1_2=intvar1+("x intvar1")
String intvar2_2=invtar2+("x intvar2")
//usw.
int gesamt= intvar1+intvar2//und so weiter

System.out.println("Pro Typ: "+intvar1_2+"\n"+intvar2_2+"\n"//usw)
System.out.println("Gesamt: "+gesamt)
[/Java]

Bitte nicht lachen, ich bin ein Einsteiger und habe Probleme mit den Methoden :)
Das Programm soll folgende Aufgabe erledigen:

Beim Druck auf den Button soll eine dazu abgestimmte Variable um eins erhöht werden.
Ich habe einen großen Teil schon fertig, GUI angepasst und alles, doch mein Problem ist:

a) Wie schaffe ich es, dass die Variable intvar1 beim Druck auf den Button um 1 erhöht wird ?
Wenn ich die Variable außerhalb des ActionListeners definiere, wird sie innerhalb nicht erkannt und anders herum. Google hat gesagt, dass ich public static versuchen soll, allerdings meint eclipse dazu, dass die Modifier nicht passen:
EclipseSDK hat gesagt.:
Illegal modifier for parameter intvar1; only final is permitted

Ich würde mich sehr über eine Antwort freuen ;)

Liebe Grüße
 

marky8264

Aktives Mitglied
hallo ShadowRaven ;)

Ich werde aus deinem Code-Ausschnitt nicht ganz schlau :bahnhof:. Es wäre vll hilfreich, wenn du ihn zumindest ein wenig vervollständigst. Den der Code ist nur in eine Klasse geschrieben ohne irgendeine Methode...

Grundsätzlich ist es möglich auf die globalen Variablen einer Klasse innerhalb einer anonymen Klasse zuzugreifen.

Hier ein kurzes Beispiel:
Java:
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Main extends JFrame {
	private int counter;
	
	public Main() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 224, 195);
		JPanel contentPane;
		contentPane = new JPanel();
		setContentPane(contentPane);
		
		JButton btn = new JButton("Erh\u00F6hen");
		btn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				counter++;
				System.out.println("counter: "+counter);
			}
		});
		contentPane.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
		contentPane.add(btn);
	}

	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Main frame = new Main();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
}
mfg
 
Danke erstmal für die Antwort :). Ich hab beim Schreiben tatsächlich die Methode vergessen. Mein Fehler, tut mir leid, haha ^^

So sieht es im Gesamten aus:

[Java]
package main;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.*;

public class Main{

public static void main(String[] args) {

public static int intvar1=0,intvar2=0 //usw
JFrame mainframe = new JFrame("mainframe");
bloecke.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
bloecke.setLayout(new GridLayout(10,3));
bloecke.setSize(420,420);


JFrame anzeige = new JFrame("Anzeige");
anzeige.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
anzeige.setSize(450,100);


JButton jbtn1 = new JButton();
jbtn1.setIcon(new ImageIcon("img1.png"));
activatorrail.addActionListener(new ActionListener() { public void actionPerformed (ActionEvent arprssd) { } });

JButton jbtn2 = new JButton();
jbtn.setIcon(new ImageIcon("bilder/img2.png"));

//Ganz viele weiter Buttons, alle nach diesem Muster

mainframe.add(jbtn1);
mainframe.add(jbtn2);

//Hier geht es nach dem selben Muster weiter, sodass alle JButtons auf dem Frame mainframe sind

String jstrng1=intvar1+"x invtar1";
String jstrng2=invtar2+"x invtar2";

//Auch hier geht es nach dem Muster weiter


int gesamt=invtar1+invtar2 //Hier werden alle int hinzugefügt, um eine Gesamtanzahl zu schaffen
System.out.println(gesamt);

anzeige.setVisible(true);
mainframe.setVisible(true);

}
}
[/code]

Problem dabei ist, dass nur final als Modifier für die ints ganz am Anfang zugelassen wird. private, static etc markiert er mir als Fehler.
 
A

Akeshihiro

Gast
Die Meckerei ist auch richtig, denn du versuchst innerhlab einer Methode ungültige Modifier zu verwenden. Variablen, die in einer Methode deklariert wurden, können keine Sichtbarkeit (public, protected, private) haben und auch nicht static sein. Um die Variablen jedoch in anonymen Klassen verwenden zu können, müssen sie final sein. Das geht aber auch nicht, weil du sie ja verändern willst. Verschieb die Deklaration der Variablen daher aus der Methode in die Klasse, dann gehts.

Etwa so:
Java:
public class Foobar {
    private static int myVar = 0;

    public static void main(String[] args) {
        // [...]
        buttonXY.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                myVar++; // inkrementieren -> um 1 erhöhen
            }
        });
        // [...]
    }
}
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
E ActionListener Java Basics - Anfänger-Themen 4
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
C JButton reagiert nicht auf actionListener Java Basics - Anfänger-Themen 15
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
J Array Actionlistener Java Basics - Anfänger-Themen 9
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
P Erste Schritte ActionListener Java Basics - Anfänger-Themen 2
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
J Erste Schritte Actionlistener für tbar/ JButton Java Basics - Anfänger-Themen 15
krgewb ActionListener Java Basics - Anfänger-Themen 1
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
F ActionListener mit Files etc Java Basics - Anfänger-Themen 12
N Probleme mit dem ActionListener Java Basics - Anfänger-Themen 4
CptK Auf ActionListener von anderer Klass aus zugreifen Java Basics - Anfänger-Themen 5
F Mehrere Buttons mit einem ActionListener abdecken Java Basics - Anfänger-Themen 24
U ActionListener mit JMenuItems verknüpfen Java Basics - Anfänger-Themen 1
S in ActionListener auf Eingabe aus anderem Frame warten Java Basics - Anfänger-Themen 2
L Problem bei Java-ActionListener Java Basics - Anfänger-Themen 4
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
D Einen Wert unter einen ActionListener weitergeben Java Basics - Anfänger-Themen 1
T Übernahme einer Variablen im ActionListener/ActionEvent Java Basics - Anfänger-Themen 2
JavaNewbie2.0 ActionListener Java Basics - Anfänger-Themen 11
Voreck Actionlistener problem Java Basics - Anfänger-Themen 1
G Im ActionListener eine "äußere" Variable verändern Java Basics - Anfänger-Themen 13
T Fehler beim ActionListener Java Basics - Anfänger-Themen 2
M public static int in ActionListener Java Basics - Anfänger-Themen 6
S actionlistener timer Java Basics - Anfänger-Themen 9
J Interface ActionListener in eigener Klasse Java Basics - Anfänger-Themen 27
P aus ActionListener auf HauptFrame zugreifen Java Basics - Anfänger-Themen 4
A Klassen Bool Actionlistener Java Basics - Anfänger-Themen 2
K Methoden ActionListener wird übersprungen Java Basics - Anfänger-Themen 3
S actionlistener Java Basics - Anfänger-Themen 29
S ActionListener und Statische Variablen Java Basics - Anfänger-Themen 4
J ActionListener Java Basics - Anfänger-Themen 5
A ActionListener Java Basics - Anfänger-Themen 9
R Problem mit ActionListener für Buttons Java Basics - Anfänger-Themen 5
Z ActionListener wird nicht erkannt? Java Basics - Anfänger-Themen 5
T ActionListener Source vergleichen Java Basics - Anfänger-Themen 8
T Frage zum ActionListener Java Basics - Anfänger-Themen 5
R ActionListener mit for Schleife füllen. Java Basics - Anfänger-Themen 4
K Button's mit versch. Aufgaben/ActionListener Java Basics - Anfänger-Themen 12
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
I ActionListener reagiert nicht Java Basics - Anfänger-Themen 6
N Probleme mit ActionListener und Logischer Abfrage Java Basics - Anfänger-Themen 4
D Erste Schritte Buttons mit actionlistener Problem Java Basics - Anfänger-Themen 3
S JButton mit ActionListener Java Basics - Anfänger-Themen 5
X Variablen Actionlistener | Variablen-namen Java Basics - Anfänger-Themen 5
G ActionListener implementieren Java Basics - Anfänger-Themen 12
T Erste Schritte Berechnete Variable im ActionListener zurückführen Java Basics - Anfänger-Themen 6
D Panel sichtbar/unsichtbar machen im ActionListener Java Basics - Anfänger-Themen 3
U JFrame durch ActionListener erweitern Java Basics - Anfänger-Themen 4
M Button , actionlistener Java Basics - Anfänger-Themen 11
P Erste Schritte JTable mit Daten aus Acces DB füllen und Actionlistener einsetzen Java Basics - Anfänger-Themen 29
M Actionlistener Java Basics - Anfänger-Themen 9
D Problem mit ausgelagertem Actionlistener Java Basics - Anfänger-Themen 4
D KeyListener und ActionListener Problem Java Basics - Anfänger-Themen 6
M Klassen Durch den ActionListener das GUI einer anderen Klasse verändern Java Basics - Anfänger-Themen 8
T NullPointerException im ActionListener Java Basics - Anfänger-Themen 3
C Erste Schritte GUI - ActionListener - Exception Nullpointer Java Basics - Anfänger-Themen 5
Kenan89 ActionListener in eigene Klasse Java Basics - Anfänger-Themen 8
E JMenu ActionListener reagiert nicht? Java Basics - Anfänger-Themen 6
V ActionListener in einer for-Schleife Java Basics - Anfänger-Themen 2
S Erste Schritte ActionListener auf Buttons einrichten Java Basics - Anfänger-Themen 3
M Variablen Variable lässt sich durch ActionListener nicht ändern Java Basics - Anfänger-Themen 5
P ActionListener Action Event Java Basics - Anfänger-Themen 5
L ActionListener zerschießt AnchorLayout Java Basics - Anfänger-Themen 8
D ActionListener braucht zwei Klicks auf Button??? Java Basics - Anfänger-Themen 2
M Methoden Timer in ActionListener aufrufen Java Basics - Anfänger-Themen 2
Y Actionlistener passt nicht zu Dataset Java Basics - Anfänger-Themen 6
W Problem mit FileWriter / ActionListener Java Basics - Anfänger-Themen 6
F actionListener Java Basics - Anfänger-Themen 3
T ActionListener auslagern Java Basics - Anfänger-Themen 14
S Actionlistener funktionieren nicht in der .jar Java Basics - Anfänger-Themen 9
E ActionListener abwarten lassen? Java Basics - Anfänger-Themen 11
E ActionListener in anderer Klasse erkennen Java Basics - Anfänger-Themen 13
H ActionListener Verbesserung möglich? (This) Java Basics - Anfänger-Themen 3
E ActionListener erkennt instanz nicht Java Basics - Anfänger-Themen 9
V ActionListener bei vielen Modulen Java Basics - Anfänger-Themen 3
J ActionListener Java Basics - Anfänger-Themen 2
T JLabel durch ActionListener ändern Java Basics - Anfänger-Themen 4
S ActionListener Java Basics - Anfänger-Themen 4
U actionListener - eine Kleine Frage Java Basics - Anfänger-Themen 7
K Actionlistener Java Basics - Anfänger-Themen 7
M ActionListener außerhalb des EDT ausführen Java Basics - Anfänger-Themen 2
A ActionListener im JMenu - Problem Java Basics - Anfänger-Themen 2
M ActionListener reagiert nicht Java Basics - Anfänger-Themen 4
N ActionListener + GUI Java Basics - Anfänger-Themen 8
H Bewegtes Bild im ActionListener [Problem] Java Basics - Anfänger-Themen 12
D Liste+ActionListener Java Basics - Anfänger-Themen 6
L wie Jframe an ActionListener übergeben Java Basics - Anfänger-Themen 4
U ActionListener und KeyListener - KeyListener funktioniert nicht Java Basics - Anfänger-Themen 2
A JButton ActionListener nach einmaligem Ausführen zurücksetzen Java Basics - Anfänger-Themen 13
Luk10 Problem mit ActionListener Java Basics - Anfänger-Themen 6
R Viereck zeichnen über TextField-Eingabe /ActionListener Java Basics - Anfänger-Themen 9
C ActionListener problem beim starten von programmen Java Basics - Anfänger-Themen 3
C ActionListener problem Java Basics - Anfänger-Themen 4
L Tray-Einträge und dazu passende ActionListener dynamisch erzeugen? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben