Java 为JButtons添加全局键绑定?

Java 为JButtons添加全局键绑定?,java,swing,user-interface,jbutton,Java,Swing,User Interface,Jbutton,我有: for(int i=0;i为每个按钮使用键绑定。请参阅 例如,在创建中添加下一个代码: for (int i = 0; i <= 9; i++) { JButton c = new JButton(); c.setText(Integer.toString(i)); ActionListener l = new NumericButtonListener(i); c.addActionListener(l);

我有:


for(int i=0;i为每个按钮使用键绑定。请参阅

例如,在创建中添加下一个代码:

    for (int i = 0; i <= 9; i++) {
        JButton c = new JButton();
        c.setText(Integer.toString(i));
        ActionListener l = new NumericButtonListener(i);
        c.addActionListener(l);
        buttonGrid.add(c); }
  • 您可以使用
    keyBindings
    并为特定键分配一个公共
    操作

  • 使用按钮的函数生成操作事件并侦听它。您需要在按下映射键的特定按钮上调用此函数。例如:

    c.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(Integer.toString(i)), "doSomething");
    c.getActionMap ().put("doSomething", new AbstractAction() {
    
          @Override
          public void actionPerformed(ActionEvent arg0) {
                System.out.println(c.getText());
          }  
    });
    

  • 实现ActionListener。稍后在actionPerformed方法中使用getActionCommand方法进行检查。@subash抱歉,我不明白?
    Action generateClick = new AbstractAction() {
      public void actionPerformed(ActionEvent e) {
          JButton butt = (JButton) e.getSource();
          butt.doClick();
      }
     };