tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
747
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von zer0
    zer0 zer0 ist offline Mitglied Brokat
    Registriert seit
    Oct 2009
    Beiträge
    323
    Hallo

    Ich brauch hilfe bei der Umsetzung einer JMenuBar + JMenu und den dazugehörigen ActionListenern. Ich suche eine saubere und professionelle Lösung (vllt aus eure eigenen Erfahrung).

    Ich habe eine JMenuBar mit verschiedenen JMenu's (Datei, Bearbeiten, Hilfe) und den dazugehörigen JMenuItems (Neu, Kopieren, Einfügen, Ausschneiden, Hilfe...).

    Nun habe ich vor für jeden JMenu eine ActionListener Klasse zu erstellen. Um herauszufinden welches Item gedrückt wurde muss ich also entweder mit ActionCommands arbeiten, oder ich übergebe meiner ActionListener-Klasse this und überprüfe in der ActionListener-Klasse dann mittels
    Code :
    1
    
    if(e.getSource == guiInstanz.copyMenuItem) { }

    Weiß nur nicht ob das wirklich sauber ist?

    Vielleicht löst ihr das anders & könnt mir das mitteilen?
     

  2. #2
    Avatar von zer0
    zer0 zer0 ist offline Mitglied Brokat
    Registriert seit
    Oct 2009
    Beiträge
    323
    Keiner eine Idee?
     

  3. #3
    hansmueller hansmueller ist offline Mitglied Silber
    Registriert seit
    Sep 2008
    Beiträge
    78
    Hallo,
    du brauchst nicht für jeden JMenu eine eigene Klasse. Eine einzige reicht völlig aus.

    Ich übergebe auch immer mit "this" im Listener-Konstruktor eine Instanz der Klasse, welche den Listener benutzt.

    MfG
    hansmueller
     

  4. #4
    Avatar von zer0
    zer0 zer0 ist offline Mitglied Brokat
    Registriert seit
    Oct 2009
    Beiträge
    323
    Hey vielen Dank für deine Antwort!

    Ja ich dachte das ganze könnte dann unübersichtlich werden wenn alle JMenuItem's-Actions da drin sind.

    Das heißt du übergibst mit "this" eine Instanz und in der ActionListener-Klasse überprüfst du dann mittels if-Abfragen welches JMenuItem der auslöser war, seh ich das so richtig?
     

  5. #5
    hansmueller hansmueller ist offline Mitglied Silber
    Registriert seit
    Sep 2008
    Beiträge
    78
    Richtig.
    Wenn du die if-Abfragen schön der Reihe nach sortierst, wie sie im Menü vorkommen, ist die ganze Sache auch noch verhältnismäßig übersichtlich. Kommt natürlich darauf an wie viele Menü(unter)punkte du hast. Aber man kann ja auch durch das Auslagern in Methoden oder Klassen arbeiten.

    Es gibt übrigens noch etwas, das nennt sich das MVC-Modell. (Model-View-Control)
    Ist allerdings für meinen Geschmack (oder sollte ich besser Wissenstand und/oder Erfahrung sagen) noch etwas zu kompliziert.
    Dieses Modell macht auch nicht immer Sinn.

    MfG
    hansmueller
     

  6. #6
    Maddin Maddin ist offline Mitglied Silber
    Registriert seit
    Jul 2010
    Beiträge
    71
    Hallo,

    Ich würde das auch so machen, wie hansmueller gesagt hat.
    Außerdem würde ich dir empfehlen, mit actionCommands zu arbeiten. Ist meiner Erfahrung nach, insbesondere bei größeren Menüs, übersichtlicher. Sonst hast du nämlich irgendwann 100 Vergleiche drin und kennst dich nicht mehr aus, was jetzt überhaupt wozu gehört.
    Und es ist pro Item nur eine Zeile mehr, was man der Übersichtlichkeit zuliebe hinnehmen kann.

    Gruß,
    Martin
     

Ähnliche Themen

  1. JButton UI von JMenu UI casten
    Von testIt im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 9
    Letzter Beitrag: 02.04.10, 14:37
  2. JMenu Listener
    Von 3phasenpeterle im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 3
    Letzter Beitrag: 29.12.08, 21:16
  3. Swing JMenu
    Von weltenmeer im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 26.03.08, 13:04
  4. JMenu und ein Fenster zur Textausgabe
    Von frau-u im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 14.04.05, 14:38
  5. URL mit JMenu
    Von savvo im Forum Java
    Antworten: 3
    Letzter Beitrag: 04.01.05, 13:22