statischer ActionListener keine Wirkung?

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?
 
Weil
Code:
frame.Frame.actionlis
bei dem Aufruf von
Code:
close.addActionListener(frame.Frame.actionlis);
noch null ist !
Zeile 12 in deiner Frame Klasse mal nach Zeile 8 verschieben, dann könnte es gehen. Allerdings ist das irgendwie alles ziemlich eklig wenn du mich fragst 😀
 
Allerdings ist das irgendwie alles ziemlich eklig wenn du mich fragst

Wieso ist das eklig? 😀

Sry wegen 2 Threads. Habe wohl statt zu editieren, einen neuen Thread eröffnet.

Ich habe aber gleich eine neue Frage: Kann ich ein HashMap in ein Object casten?
 

Zurück
Oben