statischer ActionListener keine Wirkung?

Status
Nicht offen für weitere Antworten.

Kenan89

Bekanntes Mitglied
Hallo, ich habe einen ActionListener definiert, der aber keine Wirkung hat...

Hier der Code:

Java:
package exe;

public class Exe {
	public static void main(String[] args){
		new frame.Frame();
	}
}

Java:
package frame;

import java.awt.BorderLayout;

import javax.swing.JFrame;

public class Frame extends JFrame{
	
	public static panels.Menu menu = new panels.Menu();
	public static panels.Game game = new panels.Game();
	
	public static listeners.ActionL actionlis = new listeners.ActionL();
	
	public Frame(){
		build();
	}
	
	private void build(){
		add(menu, BorderLayout.NORTH);
		add(game, BorderLayout.CENTER);
		
		setTitle("2D");
		setSize(500, 500);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLocationRelativeTo(null);
		setVisible(true);
	}

}

Java:
package panels;

import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class Menu extends JMenuBar{
	
	private JMenu data = new JMenu("Optionen");
	private JMenuItem newgame = new JMenuItem("Neu");
	private JMenuItem loadgame = new JMenuItem("Laden");
	private JMenuItem close = new JMenuItem("Beenden");
	
	public Menu(){
		addListeners();
		build();
	}
	
	private void build(){
		add(data);
		data.add(newgame);
		data.add(loadgame);
		data.addSeparator();
		data.add(close);
	}
	
	private void addListeners(){
		close.addActionListener(frame.Frame.actionlis);
	}
	
	public JMenuItem getItemClose(){
		return close;
	}

}

Java:
package listeners;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ActionL implements ActionListener{
	
	public ActionL(){}
	
	public void actionPerformed(ActionEvent e){
		Object obj = e.getSource();
		if(obj.equals(frame.Frame.menu.getItemClose())){
			System.exit(0);
		}
	
	}

}

Was habe ich falsch gemacht? Danke im voraus.
 
Man, blöder Fehler, habe den ActionListener erst statisch deklariert, NACHDEM ich die panels deklariert habe. Der Listener muss allerdings zuerst deklariert werden.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben