ActionListener und Methoden-Aufruf aus anderen Klassen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich weiss nicht genau, ob ich hier im richtigen Thread bin, aber ich meine schon. Ich habe es gerade begonnen mich mit OO-Programmierung und Java zu beschäfigen. Es geht sich um folgendes:

Ich versuche mittels Swing und ActionListener eine GUI aufzubauen. Dazu habe ich bisher z. Bsp. die folgenden Klassen:

Fenster - enthält die Fensterinformation, den Menüaufbau und auch als interne private final class die ActionListener, die ich menuListener, nenne

testing - in dieser Class stehen meine Methoden, auf die ich gerne per ActionListener zugreifen würde

main - mittels
Code:
Fenster f = new Fenster(fenstername);
baue ich die GUI auf, f wird mittels
Code:
f.add(p);
die zu zeichnenden Argumente übergeben

Nun zu meinem Problem. In dem Menü will ich zum Beispiel die Funktion "Datei öffnen" aufrufen, die zugehörige Methode befindet sich in testing. Wie mache ich das, wenn der ActionListener aber in Fenster als interne Class liegt. Das beenden das Programms über einen Menü-Eintrag und entsprechenden ActionListener bekomme ich auch hin.

Meine interne ActionListener-Class sieht so aus:

Code:
private final class menueLauscher implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			if(e.getActionCommand().equals("Beenden")){
				System.exit(0);
			}
			if(e.getActionCommand().equals("Datei oeffnen")){
				System.out.println("Datei oeffnen");
			}
			if(e.getActionCommand().equals("Datei speichern")){
				System.out.println("Datei speichern");
			}
		}
	}

Anstelle der Ausgabe "Datei oeffnen" soll aber die entsprechende Methode aufgerufen werden. Aber da weiss ich nicht weiter.
 

André Uhres

Top Contributor
Code:
class Fenster extends JFrame {
    public Fenster(String name){
        ...
        menueLauscher = new MenueLauscher();
        testing = new Testing();
    }
    public void add(String arg){
        if(arg.equals("menu")){
            ...
            openItem.addActionListener(menueLauscher);
            ...
        }
    }
    private Testing testing;
    private MenueLauscher menueLauscher ;
    private final class MenueLauscher implements ActionListener {
            ...
            if(e.getActionCommand().equals("Datei oeffnen")){
                testing.openFile();
            }
            ...
        }
    }
}
class Testing{
    public void openFile(){
        System.out.println("Datei oeffnen");
    }
}
 

diff

Neues Mitglied
Hallo,

ich habe eine recht ähnliches Problem. Und zwar beginnt mein Problem dort, wo die Lösung des vorherigen endet.

Code:
public class Fenster extends JFrame {
	private MenueLauscher m1;
	private Painter p;
	
	public Fenster(String kopf) {
	        ...
	        m1 = new MenueLauscher();
		p = new Painter();
	}
	
	public void Add(String arg) {
		if(arg.equals("menu")){
			...
                       JMenuItem itemOeffnen = new JMenuItem("Datei oeffnen");
			itemOeffnen.addActionListener(m1);
	
			...
			menuLeiste.add(menuDatei);	
			setJMenuBar(menuLeiste);
			}		
		}
	
	private final class MenueLauscher implements ActionListener {
		public void actionPerformed(ActionEvent e) {
		       ...
	               if(e.getActionCommand().equals("Datei oeffnen")){
				p.load("Hallo.dat");
				System.out.println("Datei oeffnen");
		       ...	
                       }
			
		}
	}
}

Code:
public class Main {

	public static void main(String[] args) {

		Fenster f = new Fenster("Malereien");
		f.Add("menu");
		Painter p = new Painter();
		f.add(p);
		f.setVisible(true);
	}

}


Code:
public class Painter extends JComponent {
	Collection<Paintable> ps = new ArrayList<Paintable>();
	int zaehler;
	

	public void addp(Paintable p)
	{
		ps.add(p);

	}
	
	public Collection<Paintable> getPaintables() {
		return new ArrayList<Paintable>(ps);
	}

	public void paint(Graphics g){
			super.paint(g);
			Iterator<Paintable> paintableIterator = ps.iterator();
			while(paintableIterator.hasNext()){
				Paintable p = paintableIterator.next();
		    p.draw(g,getWidth(), getHeight() );
		}
	}
	
	public void load(String name){
		try {
			FileInputStream fin =  new FileInputStream(name);		
			load(fin);
			}
		catch(IOException e)
		{
			System.out.println("error beim lesen von "+name);
			e.printStackTrace();
		}	

	}
	public void load(InputStream inpt){
		try {
			ObjectInputStream in = new ObjectInputStream(inpt);
			Collection<Paintable> readObject = (Collection<Paintable>) in.readObject();
			ps = readObject;
			in.close();
			repaint();
			}
		catch(Exception e)
		{
			System.out.println("error beim lesen");
			e.printStackTrace();
		}
	}
	
}

Jetzt besteht mein Problem darin, die geladenen Objekte in dem geöffneten Fenster anzuzeigen. Ich habe ja keinen Zugriff in der Class MenueLauscher auf das Fenster, daher kann ich da auch keine neue Objekte zufügen.

Wenn ich in der Main mittels
Code:
p.load("datei.dat");
f.add(p);
zugreife, dann werden die Objekte auch korrekt im Fenster angezeigt, aber leider nicht über das Menü.

Die Daten werden zwar aus der Datei geladen, aber wie gesagt nicht angezeigt. Sicherlich weiss hier wer, wie ich mein Problem lösen kann.
 

André Uhres

Top Contributor
Code:
   ...
    public void Add(String arg) {
        if(arg.equals("menu")){
            //...
        }else if(arg.equals("painter")){
            p = new Painter();
            add(p);
        }
    }
    ...
    public static void main(String[] args) {
        Fenster f = new Fenster("Malereien");
        f.Add("menu");
        f.Add("painter");
        f.setVisible(true);
    }
    ...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
xYurisha ActionListener Methoden Buttons zuweisen! AWT, Swing, JavaFX & SWT 16
M ActionListener und mathematische Methoden AWT, Swing, JavaFX & SWT 13
P Actionlistener - 3 klassen - kompliziert - auf methoden zugreifen AWT, Swing, JavaFX & SWT 3
M Zugriff auf Methoden aus einem ActionListener AWT, Swing, JavaFX & SWT 2
B ActionListener und Statische Methoden AWT, Swing, JavaFX & SWT 3
C Button ActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
H Viele ActionListener (MouseListener) - Performance AWT, Swing, JavaFX & SWT 24
pkm MainFrame durch Actionlistener auffrischen, aber wie? AWT, Swing, JavaFX & SWT 2
L actionListener für Button AWT, Swing, JavaFX & SWT 97
R Actionlistener funktioniert nicht AWT, Swing, JavaFX & SWT 4
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
R ActionListener in Actionlistener AWT, Swing, JavaFX & SWT 6
S Swing Variable in Actionlistener aufrufen AWT, Swing, JavaFX & SWT 10
P Swing ActionListener überschreibt einen Wert aus der Hauptklasse nicht AWT, Swing, JavaFX & SWT 5
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
M AWT Kann meinen Fehler beim ActionListener nicht finden AWT, Swing, JavaFX & SWT 5
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
L Ein Actionlistener für ein Textfeld, anstatt viele Actionlistener für ein Textfeld AWT, Swing, JavaFX & SWT 7
coolian ActionListener funktonirt nicht richtig auf JMenuItem AWT, Swing, JavaFX & SWT 4
L ActionListener zu Button in Panel hinzufügen AWT, Swing, JavaFX & SWT 10
R Kann JLabel in ActionListener nicht aufrufen AWT, Swing, JavaFX & SWT 4
Blender3D einzelner ActionListener vs anonyme ActionListener AWT, Swing, JavaFX & SWT 10
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
J ActionListener bei Buttons AWT, Swing, JavaFX & SWT 14
S Swing Problem mit Button und ActionListener AWT, Swing, JavaFX & SWT 5
it_is_all ActionListener umlenken/ updaten mit AddActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 3
it_is_all Event Handling ActionListener in anderer Klasse klappt nicht AWT, Swing, JavaFX & SWT 4
F "ActionListener" funktioniert nicht AWT, Swing, JavaFX & SWT 4
Z ActionListener Variable übergeben AWT, Swing, JavaFX & SWT 12
T JProgressbar während actionListener updaten AWT, Swing, JavaFX & SWT 1
S While Schleife im Actionlistener AWT, Swing, JavaFX & SWT 1
S ActionListener für alle Buttons AWT, Swing, JavaFX & SWT 26
R Swing ActionListener bei JButton AWT, Swing, JavaFX & SWT 9
T ActionListener nimmt JTextField nicht mehr an. AWT, Swing, JavaFX & SWT 2
P ActionListener Graphics Einbauen AWT, Swing, JavaFX & SWT 0
S actionlistener mit 2 fenster integrieren AWT, Swing, JavaFX & SWT 11
Liondary GUI - ActionListener AWT, Swing, JavaFX & SWT 7
J ActionListener erkennt Variable nicht AWT, Swing, JavaFX & SWT 6
E ActionListener führt falsche Funktion aus AWT, Swing, JavaFX & SWT 6
Sin137 ActionListener in MVC AWT, Swing, JavaFX & SWT 7
A Oberfläche mit zwei Klassen und actionlistener verbinden AWT, Swing, JavaFX & SWT 7
Paul15 ActionListener Variablen AWT, Swing, JavaFX & SWT 13
Y ActionListener AWT, Swing, JavaFX & SWT 2
K Ereignisbehandlung, ActionListener, ActionEvent AWT, Swing, JavaFX & SWT 3
A Gui für Vokabeltrainer (ActionListener) AWT, Swing, JavaFX & SWT 14
C Im ActionListener Buttons disablen, einen Thread starten, dann Buttons enablen AWT, Swing, JavaFX & SWT 2
M JTextArea wird nicht aktualisiert (ActionListener-Problem) AWT, Swing, JavaFX & SWT 1
J Event Handling JOptionPane ActionListener setzen. AWT, Swing, JavaFX & SWT 3
S ActionListener Klasse aufrufen AWT, Swing, JavaFX & SWT 4
R Swing Problem: IOException bei ActionListener AWT, Swing, JavaFX & SWT 1
J ActionListener soll auf paint() Methode zugreifen AWT, Swing, JavaFX & SWT 1
A JButton wird bei ActionListener nicht "angenommen" AWT, Swing, JavaFX & SWT 7
T Einfaches Problem mit ActionListener AWT, Swing, JavaFX & SWT 2
K ActionListener mit KeyListener AWT, Swing, JavaFX & SWT 7
K GUI, Button, ActionListener - ein paar Einsteigerprobleme AWT, Swing, JavaFX & SWT 1
W Verschachtelter ActionListener AWT, Swing, JavaFX & SWT 0
N gewünschte ActionListener bei RadioButton mit isSelected geht nicht AWT, Swing, JavaFX & SWT 2
C Probleme mit Buttons und einem ActionListener AWT, Swing, JavaFX & SWT 2
K Swing JMenu und ActionListener AWT, Swing, JavaFX & SWT 4
A Swing ActionListener AWT, Swing, JavaFX & SWT 8
V ActionListener Abhängigkeitenproblem AWT, Swing, JavaFX & SWT 6
M ActionListener für mehrere Klassen AWT, Swing, JavaFX & SWT 4
J ActionListener für Buttons AWT, Swing, JavaFX & SWT 3
M Event Handling ActionListener übergeben ich checks net AWT, Swing, JavaFX & SWT 4
C Swing ComboBox - ActionListener deaktivieren AWT, Swing, JavaFX & SWT 2
S Button (ActionListener) funktioniert nicht, wenn y-Koordinate verändert wird AWT, Swing, JavaFX & SWT 5
L Swing ActionListener führt seine Aufgabe nur teilweise aus. AWT, Swing, JavaFX & SWT 7
A Swing ActionListener kann nicht hinzugefügt werden AWT, Swing, JavaFX & SWT 4
Q CardLayout, ausgelagerte Panels, ActionListener AWT, Swing, JavaFX & SWT 5
M ProgressBar in ActionListener AWT, Swing, JavaFX & SWT 4
D AWT eigenem Knopf ActionListener zuweisen AWT, Swing, JavaFX & SWT 24
E Wert aus ActionListener geben AWT, Swing, JavaFX & SWT 4
J ActionListener per Innere Klasse oder e.getActionCommand() if-Abfrage? AWT, Swing, JavaFX & SWT 12
L Swing ActionListener zugriff auf bestimmte Elemente AWT, Swing, JavaFX & SWT 3
P Swing Seltsames ActionListener-Verhalten AWT, Swing, JavaFX & SWT 7
Oliver530 ActionListener von eigener ButtonKlasse AWT, Swing, JavaFX & SWT 16
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 2
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 3
C In der Schleife ActionListener aktivieren AWT, Swing, JavaFX & SWT 3
B Swing Problem beim ActionListener AWT, Swing, JavaFX & SWT 5
P Swing JPanel mit ActionListener mehrfach verwenden AWT, Swing, JavaFX & SWT 8
1 ActionEvent generieren und an ActionListener weiterleiten AWT, Swing, JavaFX & SWT 12
N Swing Klasse erbt von JDialog - Problem mit innerer ActionListener-Klasse AWT, Swing, JavaFX & SWT 6
N JCombobox und Actionlistener Aktion nur ausführen, wenn Useraktion ihn auslöst AWT, Swing, JavaFX & SWT 4
N Componente und Actionlistener AWT, Swing, JavaFX & SWT 5
C ActionListener AWT, Swing, JavaFX & SWT 6
Corben ActionListener Error AWT, Swing, JavaFX & SWT 2
F Wert durch ActionListener an Klasse übergeben AWT, Swing, JavaFX & SWT 3
I Swing Problem mit InputMap bei JButton (ActionListener) AWT, Swing, JavaFX & SWT 3
S Swing JButton mit ActionListener innerhalb einer JTable AWT, Swing, JavaFX & SWT 4
P Variablen in einem ActionListener zurücksetzen AWT, Swing, JavaFX & SWT 6
M AWT Problem mit ActionListener AWT, Swing, JavaFX & SWT 2
A Swing Bug in Swing? Wenn checkbox disabled reagiert ActionListener nicht AWT, Swing, JavaFX & SWT 5
S ActionListener "nach oben weitergeben" AWT, Swing, JavaFX & SWT 10
M Anonymer ActionListener AWT, Swing, JavaFX & SWT 4
L SWT Actionlistener Combobox öffnen AWT, Swing, JavaFX & SWT 4
S MenuBar ActionListener Event ... AWT, Swing, JavaFX & SWT 6
B Swing Formular mit mehreren Elementen - wie die ActionListener-Verarbeitung lösen? AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben