1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

ActionMap JButton, Keyboardeingabe wird nicht erkannt

  • Nicholas1991
  • 5. April 2009 um 21:23
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • Nicholas1991
    Punkte
    770
    Beiträge
    122
    • 5. April 2009 um 21:23
    • #1

    Hallo allesamt

    hab im Internet ein wenig rumgesucht und nach dem gefundenen Schema implementiert:

    bt_Wuerfeln: ein JButton
    Ich hoffe der Rest ist verständlich. Sonst bitte fragen.

    Code
    Action findAction = new AbstractAction() {
                    public void actionPerformed(ActionEvent e) {
                        System.out.println("HELLO WORLD!");
                    }
                };
                InputMap imap = bt_Wuerfeln.getInputMap(bt_Wuerfeln.WHEN_IN_FOCUSED_WINDOW);
                ActionMap amap = bt_Wuerfeln.getActionMap();
                KeyStroke ks = KeyStroke.getKeyStroke(KeyEvent.VK_W, InputEvent.CTRL_MASK);
                imap.put(ks, "wuerfeln");
                amap.put("wuerfeln", findAction);
  • sutupud
    Punkte
    1.659
    Beiträge
    320
    • 5. April 2009 um 22:21
    • #2

    wenn ichs recht verstehe, soll findAction ausgelöst werden wenn Strg+W gedrückt wrid...
    habs mal kurz getestet und es funktioniert.
    wo ist dein problem?

  • Nicholas1991
    Punkte
    770
    Beiträge
    122
    • 6. April 2009 um 00:00
    • #3

    Kann es sein, das es Probleme gibt, wenn der Button mal zwischenzeitlich disabled war?

  • sutupud
    Punkte
    1.659
    Beiträge
    320
    • 6. April 2009 um 01:10
    • #4

    daran sollte es eigentlich nicht liegen...
    funktioniert das bei dir?

    PHP
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Test extends JFrame {
    	public Test() {
    		super("test");
    		this.setBounds(0,0,300,200);
    
    		Action findAction = new AbstractAction() {
                public void actionPerformed(ActionEvent e) {
                    System.out.println(e);
                }
            };
            this.setLayout(new BorderLayout());
            JPanel jp = new JPanel();
            JButton bt_Wuerfeln = new JButton();
            bt_Wuerfeln.setAction(findAction);
            bt_Wuerfeln.setText("Test");
            InputMap imap = bt_Wuerfeln.getInputMap(JButton.WHEN_IN_FOCUSED_WINDOW);
            ActionMap amap = bt_Wuerfeln.getActionMap();
            KeyStroke ks = KeyStroke.getKeyStroke(KeyEvent.VK_W, InputEvent.CTRL_MASK);
            imap.put(ks, "wuerfeln");
            amap.put("wuerfeln", findAction);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		jp.add(bt_Wuerfeln);
    		this.add(jp, BorderLayout.CENTER);
    		setVisible(true);
    	}
    	public static void main(String[] args) {
    		new Test();
    	}
    }
    Alles anzeigen


    wenn ja, dann liegt der fehler wohl irgendwo anders

  • Nicholas1991
    Punkte
    770
    Beiträge
    122
    • 6. April 2009 um 14:02
    • #5

    Danke an alle

    Der Fehler lag bei mir....
    Hatte zwei Methodennamen vertauscht ^^

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum