有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用密钥侦听器的java

我的KeyListener有问题,我想使用JButtons和键盘(取决于用户偏好)输入我的程序,我不想知道如何实现KeyListener。我在我的JTextAreas KeyListener中添加了如下内容:

JTextArea0.addKeyListener(this);
JTextArea1.addKeyListener(this);

此外,在我的按钮中还添加了ActionListener,在ActionListener中执行的actionPerformed方法中,我希望执行以下操作:

if(e.getSource()=JButton0||isPressedKey for example 0){
do something...
}

我怎么能做那样的事


共 (1) 个答案

  1. # 1 楼答案

    您将通过以下示例了解:

    import java.awt.BorderLayout;
    import java.awt.EventQueue;
    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;
    import javax.swing.JFrame;
    import javax.swing.JTextArea;
    import javax.swing.JScrollPane;
    
    //Here's a class for a simple GUI that uses a JFrame
    //to hold to JTextAreas - one will listen for the key events
    //and the other will sit inside a JScrollPane providing feedback
    //about the KeyListener events being triggered
    
    public class KeyListenerExample {
    
        JTextArea inputText;
        JTextArea feedbackText;
    
         //Note: Typically the main method will be in a
        //separate class. As this is a simple one class
        //example it's all in the one class.
        public static void main(String[] args) {
    
    
             //Use the event dispatch thread for Swing components
             EventQueue.invokeLater(new Runnable()
             {
    
                @Override
                 public void run()
                 {
    
                     new KeyListenerExample();         
                 }
             });
    
        }
    
        public KeyListenerExample()
        {
            JFrame guiFrame = new JFrame();
    
            //make sure the program exits when the frame closes
            guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            guiFrame.setTitle("Creating a Table Example");
            guiFrame.setSize(700,200);
    
            //This will center the JFrame in the middle of the screen
            guiFrame.setLocationRelativeTo(null);
    
            //This JTextArea is used to display information about
            //the keylistener events. It's place in a JScrollPane
            //to allow the scrolling through all the events triggered
            feedbackText = new JTextArea();
            JScrollPane scrollText = new JScrollPane(feedbackText);
    
            //This JTextArea will trigger the KeyListener events as
            //long as it hold the focus
            inputText = new JTextArea();
    
            //The KeyListener interface is implemented as an anonymous
            //inner class using the addKeyListener method.
            inputText.addKeyListener(new KeyListener()
            {
                  //When any key is pressed and released then the 
                  //keyPressed and keyReleased methods are called respectively.
                  //The keyTyped method is called when a valid character is typed.
                  //The getKeyChar returns the character for the key used. If the key
                  //is a modifier key (e.g., SHIFT, CTRL) or action key (e.g., DELETE, ENTER)
                  //then the character will be a undefined symbol.
                  @Override 
                  public void keyPressed(KeyEvent e)
                  {
                      feedbackText.append("Key Pressed: " + e.getKeyChar() + "\n");
                  }
                  @Override
                  public void keyReleased(KeyEvent e)
                  {
                      feedbackText.append("Key Released: " + e.getKeyChar() + "\n");
                  }
    
                  @Override
                  public void keyTyped(KeyEvent e)
                  {
                      //The getKeyModifiers method is a handy
                      //way to get a String representing the
                      //modifier key.
                      feedbackText.append("Key Typed: " + e.getKeyChar() + " " + KeyEvent.getKeyModifiersText(e.getModifiers()) + "\n");
                  }
            });
    
            guiFrame.add(inputText, BorderLayout.NORTH);
            guiFrame.add(scrollText, BorderLayout.CENTER);
            guiFrame.setVisible(true);
        }
    
    }
    

    下面的Java代码清单显示了一个实现KeyListener接口的示例程序。执行时,Java代码将显示一个非常简单的Swing图形用户界面