Syntax error on token "}", delete this token

Rufus.Mueller

Bekanntes Mitglied
In der unten stehenden Klasse habe ich in Zeile 226 einen hartnäckigen Error:

Syntax error on token "}", delete this token

Normalerweise, müsste ja irgendwo danach eine Klammer zu viel stehen . Ich sehe aber keine. Habe auch schon das Programm laufen lassen und Eclipse geschlossen und wieder geöffnet (meiner Erfahrtung nach verschwinden dann unberechtigte Fehlermeldungen), ohne Erfolg.

Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;


public class Card3 extends JPanel {
	
	//Deklarationsteil

	boolean eingabeBeendet;
	JPanel suedpanel;
	JLabel moglerMeldung;
	CorsiBloecke corsiBloecke;
	Window window;
	JLabel rueckmeldungenRichtig;
	JLabel rueckmeldungenFalsch;
	boolean naechsteSequenzAngefordert;
	JButton buttonNaechsteSequenzStarten;
	JButton buttonEingabeBeenden;
	JLabel wortdarbietung;
	JTextField worteingabe;
	int i =0;
	
	
	public Card3(Window window) {
		this.window=window;
		
		naechsteSequenzAngefordert=false;
		this.setLayout(new BorderLayout());
		worteingabe = new JTextField();
	
		//Buttons erzeugen und Größe einstellen
		buttonEingabeBeenden = new JButton("Eingabe beenden");
		buttonEingabeBeenden.setPreferredSize(new Dimension(140, 40));
		buttonNaechsteSequenzStarten = new JButton("Start");
		buttonNaechsteSequenzStarten.setPreferredSize(new Dimension(140, 40));
		
		//Panels erzeugen und adden für Layout
		suedpanel=new JPanel();
		suedpanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 50, 0));
		suedpanel.add(buttonNaechsteSequenzStarten);
		suedpanel.add(buttonEingabeBeenden);
		suedpanel.setBackground(Color.BLACK);
		this.add(suedpanel, BorderLayout.SOUTH);
		suedpanel.add(buttonNaechsteSequenzStarten);
		suedpanel.add(buttonEingabeBeenden);

		buttonEingabeBeenden.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg) {
				eingabeBeendet=true;

			};
		});

	
		buttonNaechsteSequenzStarten.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg) {
				naechsteSequenzAngefordert=true;	

			
			};
		});
		
		//Corsi-Blöcke machen und add-en
		corsiBloecke = new CorsiBloecke();
		this.add(corsiBloecke, BorderLayout.CENTER);
		this.window.validate();

		
		//***Label für Rückmeldungen (richtig vs. falsch) erzeugen und einstellen
		//Label für Rückmeldungen "richtig
		rueckmeldungenRichtig = new JLabel();
		rueckmeldungenRichtig.setVisible(false);
		rueckmeldungenRichtig.setForeground(Color.BLACK);
		rueckmeldungenRichtig.setFont(new Font("Dialog", 0, 50));
		rueckmeldungenRichtig.setOpaque(true);
		rueckmeldungenRichtig.setBounds(400,200,300,100);
		rueckmeldungenRichtig.setText("Richtig!");
		this.corsiBloecke.add(rueckmeldungenRichtig);
	
		rueckmeldungenFalsch = new JLabel();
		rueckmeldungenFalsch.setVisible(false);
		rueckmeldungenFalsch.setForeground(Color.BLACK);
		rueckmeldungenFalsch.setFont(new Font("Dialog", 0, 50));
		rueckmeldungenFalsch.setOpaque(true);
		rueckmeldungenFalsch.setBounds(400,200,300,100);
		rueckmeldungenFalsch.setText("Falsch!");
		this.corsiBloecke.add(rueckmeldungenFalsch);
	
	
		
//		JButton gammel=new JButton("bowe");
//		this.add(gammel, BorderLayout.CENTER);
		
		
	

	
	
		//Label für Mogler-Meldung 
		moglerMeldung = new JLabel("Sie konnten sich eine Sequenzlänge von zwei nicht merken. Bitte wenden Sie sich an den Versuchsleiter.");
		moglerMeldung.setVisible(false);
		moglerMeldung.setOpaque(true);
		moglerMeldung.setFont(new Font("Dialog", 0, 15));
		moglerMeldung.setBounds(10,10,800,500);
		this.corsiBloecke.add(moglerMeldung);  
	
	
	
		//Label für Wortdarbietungen
		wortdarbietung = new JLabel();
		wortdarbietung.setVisible(false);
		wortdarbietung.setOpaque(true);
		wortdarbietung.setFont(new Font("Dialog", 0, 15));
		wortdarbietung.setBounds(10,10,800,500);
		this.corsiBloecke.add(wortdarbietung);  
		
	}
	
		//***Methodenteil***//
		
		//starten den Versuch mit Versuchsaufklärung

		
		//rueckmeldungenRichtig einblenden
		public void einblendenRueckmeldungenRichtig() {
			this.rueckmeldungenRichtig.setVisible(true);
		}
		
		//rueckmeldungenRichtig ausblenden 
		public void ausblendenRueckmeldungenRichtig() {
			this.rueckmeldungenRichtig.setVisible(false);
		}
		
		//rueckmeldungenFalsch sichtbar machen
		public void zeigenRueckmeldungenFalsch() {
			this.rueckmeldungenFalsch.setVisible(true);
		}
			
		//rueckmeldungenFalsch ausblenden 
		public void ausblendenRueckmeldungenFalsch() {
			this.rueckmeldungenFalsch.setVisible(false);
		}	
	
		
		
	
		
	
		
		//starten den Versuch mit Versuchsaufklärung
		public void weiter(){
			this.window.cardLayout.show(this.window.cards, "CorsiAufgabe");
		}
		
		
		
		//setzt das flag eingabeBeendet auf false zurück
		public void eingabeBeendetFalseSetzen(){
			this.eingabeBeendet = false;
		}
		
		//gibt den Wert der booleanen Variablen 
		public boolean statusEingabeBeendet(){
			return this.eingabeBeendet;
		}
		
		//gibt Status "naechsteSequenzAngefordert"
		public boolean statusNaechsteSequenzAngefordert() {
			return naechsteSequenzAngefordert;
		}
		
		//Mogler-Meldung einblenden
		public void moglerMeldung() {
		this.moglerMeldung.setVisible(true);
	//	this.corsiBloecke.setVisible(false);
		this.buttonNaechsteSequenzStarten.setVisible(false);

		this.buttonEingabeBeenden.setVisible(false);
		this.ausblendenRueckmeldungenFalsch();
		
		}
		
		
		
		//Button "Eingabe beenden ausgrauen"
		public  void buttonEingabeBeendeAusgrauen() {
			this.buttonEingabeBeenden.setEnabled(false);
			
		}
		
		//Button "Sequenz starten" ausgrauen
		public  void buttonNaechsteSequenzAusgrauen() {
			this.buttonNaechsteSequenzStarten.setEnabled(false);
		}
		
		
		// Label für Wortdarbietungen einblenden kurz
		public void wortDarbieten(String x) throws InterruptedException{
			wortdarbietung.setText(x);
			wortdarbietung.setVisible(true);
			Thread.sleep(1000);
			wortdarbietung.setText("");
			wortdarbietung.setVisible(false);
		}
		
		// Label für Wortabfrage einblenden
		public void wortAbfragen() throws InterruptedException{
			Card3.this.worteingabe.setText("");
			worteingabe.setVisible(true);
		}
		
		worteingabe.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg) {		
				Card3.this.corsiBloecke.eingabeSequenzVPwort.add(i,worteingabe.getText());
				i++;	
			};
		});	
}}
 
Java:
     worteingabe.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent arg) {      
                Card3.this.corsiBloecke.eingabeSequenzVPwort.add(i,worteingabe.getText());
                i++;    
            };
        });

das ist keine Methode!!!
Das gehört nicht einfach so in mitten die Klasse geschrieben sondern gehört eben in einen Block wie eine Methode, Konstruktor etc.!

Code:
worteingabe.addActionListener
<-- METHODENAUFRUF!
 

Zurück
Oben