tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
772
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    barsiq barsiq ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Ort
    Aachen
    Beiträge
    45
    Hallo,

    weiß denn jemand Rat, wie ich bei (fokusierten) JButtons die Auslösung der Action durch das Drucken der Leertaste- bzw. Eingabetaste unterdrücke?
    Das Project ist schon größer, und alle ActionListener auf MouseListener umstellen wäre sicher doof.
     

  2. #2
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    Zitat Zitat von barsiq Beitrag anzeigen
    weiß denn jemand Rat, wie ich bei (fokusierten) JButtons die Auslösung der Action durch das Drucken der Leertaste- bzw. Eingabetaste unterdrücke?
    Das Project ist schon größer, und alle ActionListener auf MouseListener umstellen wäre sicher doof
    wenn ich Dich richtig verstehe, solltest Du es mit einem KeyListener versuchen !

    BTW: warum eigentlich MouseListener, wenn Du TastenEvents abfragfen willst

    Ich nutze das immer wie folgt:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    
    // einem Button einen KeyListener zuweisen - hier über einen Adapter !
    jButtonAnnehmen.addKeyListener( new dlgAcceptRejectAlarm_jButtonAnnehmen_keyAdapter(this) );
     
    ...
     
    // die Adapterklasse
    class dlgAcceptRejectAlarm_jButtonAnnehmen_keyAdapter
        extends java.awt.event.KeyAdapter 
    {
        DlgAcceptRejectAlarm adaptee;
     
        dlgAcceptRejectAlarm_jButtonAnnehmen_keyAdapter( DlgAcceptRejectAlarm adaptee ) 
        {
            this.adaptee = adaptee;
        }
      
        public void keyPressed( KeyEvent e ) 
        {
            adaptee.jButtonAnnehmen_keyPressed(e);
        }
    }
     
    ...
     
    // die ausprogrammierte keyPressed-Methode
    void jButtonAnnehmen_keyPressed( KeyEvent e ) 
    {
        switch( e.getKeyCode() ) 
        {
            case KeyEvent.VK_SPACE:
                break;  // mache nix
            case KeyEvent.VK_ENTER:
                break;  // mache nix
            case KeyEvent.VK_F10:
                // mache hier irgendwas ...
                break;
        }
    }

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  3. #3
    barsiq barsiq ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Ort
    Aachen
    Beiträge
    45
    Zitat Zitat von vfl_freak Beitrag anzeigen
    wenn ich Dich richtig verstehe, solltest Du es mit einem KeyListener versuchen !
    Nicht so.

    Buttons, Actions - es ist ja alles fertig und im Betrieb. Allerdings seit wir einen Kunden haben der Tastatur einsetzt (Normalfall bei uns - Touchscreen), meckert er, beim (zufälligen) Klick auf Leertaste/Eingabe würden die fokusierten Buttons Action auslösen.

    Ich dachte eher an eine InputMap für die Button-Parentklasse.
    Anfassen eines jeden Listener kommt bei dem Volumen nicht in Betracht. ActionListener sollen ActionListener bleiben. Nur die Auslöseregeln sollen sich ändern.
     

  4. #4
    benjamin11 Tutorials.de Gastzugang
    Hallo,

    vielleicht hilft dir die Methode getModifiers() des ActionEvents weiter. Sie liefert bei einem Mausklick (wenn keine zusätzlichen Tasten gedrückt wurden) immer einen konstanten Integer-Wert 16 zurück. Wenn du jedoch mit der Leertaste beispielsweise den Klick auslöst, liefert getModifiers() den Wert 0. Somit könntest du das ja über ein if-else-Konstrukt abfangen.

    Ich hoffe, ich konnte dir ein wenig weiterhelfen.

    Gruß,

    Ben
     

  5. #5
    barsiq barsiq ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Ort
    Aachen
    Beiträge
    45
    Zitat Zitat von benjamin11 Beitrag anzeigen
    Ich hoffe, ich konnte dir ein wenig weiterhelfen.
    Hallo Ben,

    das konnteste in der Tat.

    Vielen Dank & Gruß
     

Ähnliche Themen

  1. Nicht-modalen Dialog mittels OnLButtonDblClk() auslösen
    Von Cappaja im Forum VisualStudio & MFC
    Antworten: 2
    Letzter Beitrag: 17.07.09, 16:29
  2. Antworten: 3
    Letzter Beitrag: 15.06.07, 19:46
  3. JButton mit Taste auslösen und ...
    Von TomDelonge im Forum Java
    Antworten: 4
    Letzter Beitrag: 29.06.05, 17:25
  4. Antworten: 3
    Letzter Beitrag: 25.01.05, 19:17
  5. beim pop-up schließen alt-F4 auslösen
    Von PEZ im Forum Javascript & Ajax
    Antworten: 5
    Letzter Beitrag: 16.03.04, 17:13

Stichworte