tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
323
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    hesk hesk ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Beiträge
    192
    Hallo!

    Ich definiere 2 Buttons

    Code :
    1
    2
    3
    4
    
    JButton button1 = new JButton();
    button1.setAction( actionMap.get("button1") );
    JButton button2 = new JButton();
    button2.setAction( actionMap.get("button2") );

    In den properties kann ich ihnen nun einen Text zuweisen

    Code :
    1
    2
    
    button1.Action.text = Das ist Button1
    button2.Action.text = Das ist Button2

    Jetzt sollen die zwei Buttons aber das selbe machen.

    Muss ich jetzt wirklich für jeden Button eine eigene Action machen die das selbe tut?

    Code :
    1
    2
    3
    4
    5
    
    @Action
    public void button1()
    {
     ... something ...
    }
    Das selbe für Button2

    Oder gibt es eine Möglichkeit dass beide Buttons das selbe machen, aber unterschiedlich heißen?

    Vielen Dank!
    Geändert von hesk (10.08.11 um 16:22 Uhr)
     

  2. #2
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Das ist eigentlich gar nicht schwer, aber leicht zu übersehen.
    Du musst doch lediglich die Action von Button1 auch Button2 zuweißen, sprich:

    Code :
    1
    2
    3
    4
    
    JButton button1 = new JButton();
    button1.setAction( actionMap.get("button1") );
    JButton button2 = new JButton();
    button2.setAction( actionMap.get("button1") ); // <-- Hier auch button1 angeben

    Und das müsste es doch dann eigentlich schon gewesen sein.
     

  3. #3
    hesk hesk ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Beiträge
    192
    Dann haben beide die selbe Action, aber sie haben auch beide den selben Namen.
    Also in der GUI sind dann zwei Buttons die beide "Button1" heißen.

    Sie sollen aber unterschiedlichen Namen haben.
     

  4. #4
    hesk hesk ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Beiträge
    192
    Hab eine Lösung gefunden:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    ActionMap actionMap = Application.getInstance().getContext().getActionMap( getClass(), this );
                
                JButton button1 = new JButton();
                button1.setAction( actionMap.get( "open") );
                button1.setName( "open1");
                JButton button2 = new JButton();
                button2.setAction( actionMap.get( "open") );
                button2.setName( "open2");
                
                JPanel jpanel = new JPanel();
                jpanel.add( button1 );
                jpanel.add( button2) ;
                this.getFrame().add( jpanel );

    Code :
    1
    2
    3
    4
    5
    6
    
    @Action(name="open")
        public void irgendEinName( ActionEvent av)
        {
            System.out.println("in open-Action");
            System.out.println(av.getActionCommand());
        }

    Code :
    1
    2
    
    open1.text = Button1
    open2.text = Button2
     

  5. #5
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Markiere deine Themen bitte als erledigt, wenn dein Problem gelöst ist.
     

Ähnliche Themen

  1. SingleFrameApplication - Preferences
    Von hesk im Forum Java
    Antworten: 9
    Letzter Beitrag: 10.08.11, 09:07
  2. Antworten: 6
    Letzter Beitrag: 09.08.11, 10:29
  3. Antworten: 13
    Letzter Beitrag: 09.08.11, 08:45
  4. Netbeans actionMap, resourceMap etc entfernen
    Von d-roehrig im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 5
    Letzter Beitrag: 09.07.09, 07:54
  5. ActionMap
    Von normaler_spinner im Forum Java
    Antworten: 0
    Letzter Beitrag: 26.04.07, 01:05