Eigene Klasse für Events

Status
Nicht offen für weitere Antworten.

Fr3eMaN

Mitglied
Hallo

ich hatte probiert eine KLasse zu erstellen in der ich die Oberfläche eines Programmes erstelle. Die Events ( ActionListener etc ) sollen von einer eigenen Klasse , also in einer anderen Datei gemanaged werden.
Ich müsste dann in der Hauptklasse einen neuen typ der eventklasse erstellen um auf die events zuzugreifen.
Immer wenn ich das so mache bekomme ich einen fehler. Kann mir jemand helfen?
Hier mal ein kleines sample :

Code:
// Main.java
package eventsample;

import java.awt.*;

public class Main {
    
    Frame fenster;
    MenuBar mb;
    Menu menu;
    MenuItem mi;
    
    
    public void init(){
        fenster = new Frame("Testfenster");
        mb = new MenuBar();
        menu = new Menu("Datei");
        mi = new MenuItem("Test");
        
        fenster.setMenuBar(mb);
        mb.add(menu);
        menu.add(mi);
        fenster.setVisible(true);
        
        Events e = new Events();
        
        e.action();
        
        
    }

    public static void main(String[] args) {
        Main m = new Main();
        m.init();
    }

}

Code:
// Events.java
package eventsample;

import java.awt.event.*;


public class Events {
    
    public void action(){
        Main m = new Main();
        m.mi.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                System.exit(0);
            }
        });
    }

}

ich hoffe ihr versteht mein Problem und könnt mir eine alternative angeben. Danke euch!
 
G

Guest

Gast
Hi,

du musst einen AtionListener in deine Klasse implementieren.

Code:
 class Event implements ActionListener{......

gruß monet
 

Fr3eMaN

Mitglied
ok, dann implementiere ich die Funktionen der ActionListener Klasse, aber wie rufe ich das ganze jetzt auf, muss ich immer ein ActionListener Object definieren oder wie geht das?
 
G

Gast

Gast
Du erzeugst eine Instanz der Klasse "Event" und rufst für deinen Button die Methode auf, in der sich "actionPerformed()" befindet.
Vergis aber nicht die andere Klasse zu importieren, in der sich die "actionPerformed()" befindet, sonst klappt es nicht.

gruß monet
 

Fr3eMaN

Mitglied
soweit ist alles klar, in der actionPerformed funktion muss ich doch aber die UI Elemente abfragen. Ich habe das mit der getActionCommand() Methode probiert um das Label des Elements zu erhalten, doch halte ich die Methode nicht als geeignet, wie frage ich am besten die Elemente ab?
 
G

Gast

Gast
Ich stimme Tobias zu. Mit "getActionCommand" fragst du und mit "setActionCommand" setzt Du.

Ich verwende immer setActionCommand und getActionCommand.

gruß monet
 

Fr3eMaN

Mitglied
ahh ok, danke, wusste nich das man jedem Object ein spezielles Label zuordnen kann. Danke euch, ihr habt mir sehr geholfen!
 

Fr3eMaN

Mitglied
ich muss diesen Fred leider nochmal aufgreifen weil sich ein Fehler entwickelt hat , der mich Momentan etwas ratlos macht. Ich habe also eine extradatei mit extraklasse angelegt :

Code:
import java.awt.event.*;


public class Events implements ActionListener{
    
    public void actionPerformed(ActionEvent e){
        Main m = new Main();
        
        //System.out.println(e.getActionCommand());
        
        if (e.getActionCommand() == "beenden_menu"){
            m.centerwindow(m.hauptfenster);
        }
    }
    
}

Soweit klappt das auch sehr gut, doch wenn ich in der if schleife auf ein object aus der main klasse zugreife dann bekomm ich immer einen tollen fehler, wenn ich nur das Programm beenden will klappt alles. So wie der Code jetzt aussieht würde es einen Fehler geben, und der sähe so aus :

Code:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at jmapper.Main.centerwindow(Main.java:77)
        at jmapper.Events.actionPerformed(Events.java:21)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
        at javax.swing.AbstractButton.doClick(AbstractButton.java:334)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1051)
        at apple.laf.CUIAquaMenuItem.doClick(CUIAquaMenuItem.java:119)
        at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1092)
        at java.awt.Component.processMouseEvent(Component.java:5602)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
        at java.awt.Component.processEvent(Component.java:5367)
        at java.awt.Container.processEvent(Container.java:2010)
        at java.awt.Component.dispatchEventImpl(Component.java:4068)
        at java.awt.Container.dispatchEventImpl(Container.java:2068)
        at java.awt.Component.dispatchEvent(Component.java:3903)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4256)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3936)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3866)
        at java.awt.Container.dispatchEventImpl(Container.java:2054)
        at java.awt.Window.dispatchEventImpl(Window.java:1791)
        at java.awt.Component.dispatchEvent(Component.java:3903)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Für mich heißt das soviel (zumidest die erste Meldung) das ich auf eine Objekt zugreifen würde, das es nicht gibt...aber so ist es ja nicht.
Bitte um Hilfe[/code]
 

Fr3eMaN

Mitglied
ja, stimmt.
Zeile 77 schaut so aus
Code:
int sizeY = (int) screensize.getHeight();

wenn ich in der If anweisung auf kein Objekt innerhalb einer Funktion zugreife klappt es ( z.b. bei System.exit(0);),
sobald ich aber z.B in der if anweisung m.hauptfenster.setVisible(false); reinschreibe bekomme ich an dieser stelle einen fehler.

bsp:
Code:
if (e.getActionCommand() == "beenden_map_menu"){
            //m.centerwindow(m.hauptfenster);
            m.hauptfenster.setVisible(false);
        }
daraus folgt
Code:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at jmapper.Events.actionPerformed(Events.java:22)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
        at javax.swing.AbstractButton.doClick(AbstractButton.java:334)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1051)
        at apple.laf.CUIAquaMenuItem.doClick(CUIAquaMenuItem.java:119)
        at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1092)
        at java.awt.Component.processMouseEvent(Component.java:5602)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
        at java.awt.Component.processEvent(Component.java:5367)
        at java.awt.Container.processEvent(Container.java:2010)
        at java.awt.Component.dispatchEventImpl(Component.java:4068)
        at java.awt.Container.dispatchEventImpl(Container.java:2068)
        at java.awt.Component.dispatchEvent(Component.java:3903)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4256)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3936)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3866)
        at java.awt.Container.dispatchEventImpl(Container.java:2054)
        at java.awt.Window.dispatchEventImpl(Window.java:1791)
        at java.awt.Component.dispatchEvent(Component.java:3903)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

und
at jmapper.Events.actionPerformed(Events.java:22)
ist genau m.hauptfenster.setVisible(false);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Klassen Eigene Klasse für ArrayList Java Basics - Anfänger-Themen 6
J Eigene Klasse für die Variablen? Java Basics - Anfänger-Themen 3
F Eigene Klasse für die Keys von HashMap Java Basics - Anfänger-Themen 5
T Konstruktor für eigene Klasse erstellen Java Basics - Anfänger-Themen 6
G Eigene Klasse für externe Befehle - Warten auf Prozesse Java Basics - Anfänger-Themen 6
L eigene Klasse für DB Java Basics - Anfänger-Themen 5
Amina556 Eigene Klasse definieren Java Basics - Anfänger-Themen 9
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
D Attribut Telefonnummer - eigene Klasse oder String Java Basics - Anfänger-Themen 13
S Eigene LinkedList Klasse Java Basics - Anfänger-Themen 4
H Klassen auf eigene Klasse zugreifen Java Basics - Anfänger-Themen 2
B Klassen Eigene "non static" Klasse in Main verwenden! Java Basics - Anfänger-Themen 12
S Wann existiert eine Instanz (eigene Klasse) Java Basics - Anfänger-Themen 8
S Eigene Exception Klasse - fehlender Konstruktor mit String Java Basics - Anfänger-Themen 3
B eigene klasse in listen eintragen Java Basics - Anfänger-Themen 6
A Objekte in eigene Klasse auslagern Java Basics - Anfänger-Themen 2
Kenan89 ActionListener in eigene Klasse Java Basics - Anfänger-Themen 8
E Object in eigene Klasse umwandeln? Java Basics - Anfänger-Themen 7
F Klassen Eigene Klasse definieren Java Basics - Anfänger-Themen 4
T eigene Exception Klasse Java Basics - Anfänger-Themen 12
G Eigene Klasse als Array, zugriff? Java Basics - Anfänger-Themen 2
S Eigene Stack Klasse Java Basics - Anfänger-Themen 26
W GUI als eigene Klasse oder in die Startklasse? Java Basics - Anfänger-Themen 21
H Buttonbefehle in eigene Klasse schreiben Java Basics - Anfänger-Themen 8
nrg Eigene simple List-Klasse programmieren Java Basics - Anfänger-Themen 3
M eigene Property-Klasse Java Basics - Anfänger-Themen 2
L Aus einer Methode eine eigene Klasse machen - modular coden Java Basics - Anfänger-Themen 14
E Eigene Stack Klasse schreiben Java Basics - Anfänger-Themen 12
M Eigene Klasse mit "Enumeration"-Datentyp verknüpfe Java Basics - Anfänger-Themen 16
B eigene Klasse wird nicht im Hauptprogramm erkannt! Java Basics - Anfänger-Themen 4
U Eigene klasse schreiben Java Basics - Anfänger-Themen 13
A meine eigene IO Klasse Java Basics - Anfänger-Themen 3
G Vererbung: Methoden die eigene Klasse zurückgeben Java Basics - Anfänger-Themen 8
B Panel mit Radiobuttons als eigene Klasse Java Basics - Anfänger-Themen 4
E Eigene Klasse erstellen? Java Basics - Anfänger-Themen 21
D Eigene Klasse als Import Java Basics - Anfänger-Themen 10
M eigene klasse definieren und verfügbar machen Java Basics - Anfänger-Themen 9
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
T Datentypen Eigene Datentypen Java Basics - Anfänger-Themen 15
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
C Archiv für eigene Klassen Java Basics - Anfänger-Themen 9
B JUnit 4: Wie man die eigene Liste testen kann [TDD] Java Basics - Anfänger-Themen 46
C eigene Methoden erstellen (Instanzmethoden) Java Basics - Anfänger-Themen 7
I Eigene Java Tools Nutzung Java Basics - Anfänger-Themen 6
G eigene Bibliothek einbinden Java Basics - Anfänger-Themen 1
K Eigene Annotations, Pre-/Post-/Call-Method Java Basics - Anfänger-Themen 6
O Erste Schritte Eigene charAt(i) Methode schreiben Java Basics - Anfänger-Themen 10
D Methoden Eigene Methode um alle Ausgaben aufzurufen Java Basics - Anfänger-Themen 17
L Eigene Exception schreiben bei zu langem Array Java Basics - Anfänger-Themen 10
P Maven und eigene Jars Java Basics - Anfänger-Themen 4
J Algorithmus - Strings auf eigene Reihenfolge miteinander vergleichen Java Basics - Anfänger-Themen 4
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
A Eigene Methoden entwicken Java Basics - Anfänger-Themen 3
F Klassen Eigene Exception Bedingungen festlegen Java Basics - Anfänger-Themen 2
H GSON-Bibliothek für eigene Programme benutzen Java Basics - Anfänger-Themen 2
N Eclipse - eigene Icons unter ClassPath Resource Java Basics - Anfänger-Themen 0
N Eigene Stream Methoden implementieren Java Basics - Anfänger-Themen 3
R eigene Graphikbedienelemente Java Basics - Anfänger-Themen 8
V Generics / eigene Liste Java Basics - Anfänger-Themen 4
T Eigene Bedingung in IF-Bedingung Java Basics - Anfänger-Themen 22
P Java 8 & Eigene Applets Java Basics - Anfänger-Themen 3
E Best Practice Exaktes Rechnen mit (Pseudo-)Rationalen/Realen Zahlen. Operations Zuweisung für (eigene) Klassen Java Basics - Anfänger-Themen 3
G eigene Bibliothek in Java importieren Java Basics - Anfänger-Themen 5
M Wann eigene implementierte HashCode Methode zwingend erforderlich? Java Basics - Anfänger-Themen 1
P Vererbung Eigene HashMap Variante Java Basics - Anfänger-Themen 2
P Eigene Knöpfe mit eigenem Listener Java Basics - Anfänger-Themen 5
T Muss ein Parametertest immer eine eigene Testklasse sein? Java Basics - Anfänger-Themen 3
B Multithreading und eigene Queue entwickeln Java Basics - Anfänger-Themen 3
O GUI: Eigene Fenster "Form"? Java Basics - Anfänger-Themen 13
F Eigene LinkedList - toString Java Basics - Anfänger-Themen 10
O Denkanstöße für eigene Konfigurations-Datei Java Basics - Anfänger-Themen 12
SexyPenny90 Wieso ist diese eigene Equals-Methode schlecht? Java Basics - Anfänger-Themen 17
C eigene Exception Java Basics - Anfänger-Themen 4
M externe JARs in die eigene JAR einbinden Java Basics - Anfänger-Themen 9
V Klassen import - einfaches Umleiten auf eigene Klassen? Java Basics - Anfänger-Themen 8
S [JavaFX 2.1] - Eigene Sprachauswahl? Java Basics - Anfänger-Themen 4
K Klassen Eigene Exception verwenden Java Basics - Anfänger-Themen 9
J eigene packages bzw klassen verwenden Java Basics - Anfänger-Themen 25
E Eigene Stackklasse Java Basics - Anfänger-Themen 7
B Eigene Exceptions entwerfen Java Basics - Anfänger-Themen 3
S Eigene Exception Schreiben und Welche Auslösen wie ? Java Basics - Anfänger-Themen 7
P eigene kleine Datenverwaltung Java Basics - Anfänger-Themen 5
N Eigene Methoden-> Werte übergeben Java Basics - Anfänger-Themen 5
U Klassen Eigene Klassen importieren Java Basics - Anfänger-Themen 13
S Eigene Klassen addieren Java Basics - Anfänger-Themen 3
B OOP Eigene Objekte in Arrays zusammenfassen Java Basics - Anfänger-Themen 3
E Eigene class datum Java Basics - Anfänger-Themen 2
G Eigene MessageBox kreieren Java Basics - Anfänger-Themen 9
I Erste Schritte Eigene Fehlermeldungen bei Exceptions Java Basics - Anfänger-Themen 19
S Eigene KeyEvent-Mask erstellen Java Basics - Anfänger-Themen 4
X Eigene Libary Java Basics - Anfänger-Themen 2
Crashbreaker Eigene Java-Programm ohne hilfe des CMD starten Java Basics - Anfänger-Themen 11
A Klassen Eigene Datenklasse - Strings mit fixer Länge Java Basics - Anfänger-Themen 2
G Shape um eigene Achse drehen Java Basics - Anfänger-Themen 2
P Vererbung Basisklasse soll eigene Methode benutzen Java Basics - Anfänger-Themen 38
J Eigene kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
xehpuk Ordner "Eigene Bilder" ansteuern Java Basics - Anfänger-Themen 3
V Sonderzeichen als eigene "Operatoren" im JTextField Java Basics - Anfänger-Themen 4
D Eigene equals methode schreiben Java Basics - Anfänger-Themen 4
dataframe OOP Eigene typisierte Liste Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben