Actionlistener und ActionEvent

ILoveJava

Grünschnabel
Hey Leute,
weiß jemand ob es möglich ist in zwei verschiedenen klassen jeweils das eventhandling von einer gruppe von unterschiedlichen klassen zu bündeln und bei den zwei klassen, in denen man diese bündelt trotzdem den gleichen actionlistener hat etc ?
 
Vorab ich versteh die Frage nicht, aber vielleicht hast du sowas in der Art gemeint:

Main.java
Java:
public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new GUI();

	}

}

GUI.java
Java:
import java.awt.GridLayout;

import javax.swing.JFrame;


public class GUI extends JFrame{

	
	/**
	 * 
	 */
	private static final long serialVersionUID = 6411499808530678723L;

	public GUI(){
		this.setLayout(new GridLayout(1,2));
		this.add(new JPanel_Hello());
		this.add(new JPanel_Bye());
		this.setSize(200, 200);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

}

JPanel_Bye.java
Java:
import javax.swing.JButton;
import javax.swing.JPanel;


public class JPanel_Bye extends JPanel{

	/**
	 * 
	 */
	private static final long serialVersionUID = -5129576992319253661L;

	public JPanel_Bye(){
		
		JButton jb_bye = new JButton("Bye");
		jb_bye.setActionCommand("Bye");
		myActionListener my_actionlistener = new myActionListener();
		jb_bye.addActionListener(my_actionlistener);
		
		this.add(jb_bye);
	}

}

JPanel_Hello.java
Java:
import javax.swing.JButton;
import javax.swing.JPanel;


public class JPanel_Hello extends JPanel{

	/**
	 * 
	 */
	private static final long serialVersionUID = -8113035218349990179L;

	public JPanel_Hello(){
		
		JButton jb_hello = new JButton("Hello");
		jb_hello.setActionCommand("Hello");
		myActionListener my_actionlistener = new myActionListener();
		jb_hello.addActionListener(my_actionlistener);
		
		this.add(jb_hello);
	}

}

myActionListener.java
Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JOptionPane;

public class myActionListener implements ActionListener{

	@Override
	public void actionPerformed(ActionEvent event) {
		JOptionPane.showMessageDialog(null, event.getActionCommand());
	}

}

Grüße
Youza
 

Neue Beiträge

Zurück