Java problem mit dem ActionListener

05/06/2014 18:20 TeraTroll#1
Guten Tag ich bin es mal wieder,
ich bin ja wie bekannt ein Neuling in Java und habe ein Problem mit dem Listener da ich egal wo ich ihn hinpacke Eclipse ein Error ausspuckt ^^ kann mir jmd von euch helfen? =)
Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class SubWin extends JFrame {
	
	public static void main(String[] args) {
		new SubWin();
	}


	public SubWin() {
		class DerHandler implements ActionListener{
			


			public void actionPerformed(ActionEvent event) {
				if(event.getSource()==button1)
					JOptionPane.showMessageDialog(null, "test");
				
						}	
					}
		
		setVisible(true);
		setLocationRelativeTo(null);
		setSize(200,200);
		setTitle("Label");
		getContentPane().setLayout(null);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
		
		//Menu
		//Labels
		JLabel label = new JLabel();
		label.setLocation(10, 10);
		label.setSize(100, 10);
		label.setText("Test");
		add(label);
		//Button
		JButton button1 = new JButton("");
		button1.setBounds(10, 30, 20, 20);
		add(button1);		
		//Input
		JTextField input = new JTextField(10);
		add(input);
		
		DerHandler handler = new DerHandler();
		button1.addActionListener(handler);
			
	}
}
05/06/2014 19:12 'Heaven.#2
Du kannst keine Klasse in einer Methode deklarieren.

So würde es in etwa aussehen

Code:
button1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent args)
{
if(args.getSource() == button1)
{
//do 
}
}
});
05/06/2014 19:40 TeraTroll#3
Danke sehr =) Ja ich bin wirklich noch ein newbie :/ aber ich denke mal das jeder mal klein angefangen hat =)

Ich bin gerade am verzweifeln...bzw einfach zu blöd O.o

MfG Joshi
05/06/2014 22:27 XxharCs#4
Verwende innere Klassen richtig oder mach einfach eine neue. Weil schönes, übersichtliches,.. programmieren gewünscht ist, besonders für Anfänger.

Was genau funktioniert den nicht? Nicht zu vergessen, du solltest die actionPerformed Methode overriden.
Code:
@Override
public void actionPerformed(ActionEvent e) {
...
...
}