Java 我能';不要同时使用ActionListener和KeyListener

Java 我能';不要同时使用ActionListener和KeyListener,java,actionlistener,keylistener,Java,Actionlistener,Keylistener,我想创建一个简单的窗口,其中有一个按钮。 我什么时候按他应该打印出“test”,什么时候按F5“F5”。 我不知道我在做什么 我为我的英语道歉,我还在学习 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JButton; imp

我想创建一个简单的窗口,其中有一个按钮。 我什么时候按他应该打印出“test”,什么时候按F5“F5”。 我不知道我在做什么 我为我的英语道歉,我还在学习

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JButton;
import javax.swing.JFrame;

@SuppressWarnings("serial")
public class Okienko extends JFrame implements ActionListener , KeyListener
{
    static Okienko frame;

    JButton bTest;

    public Okienko() 
    {
        setLayout(null);
        frame = this;
        frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
        frame.setTitle("test");
        frame.setLocation(150, 150);
        frame.setSize(200, 400);


        bTest = new JButton("Test");
        bTest.setBounds(20, 50, 120, 20);
        frame.add(bTest);

        bTest.addActionListener(this);

        frame.addKeyListener(this);
        //frame.setFocusable(false);
        //frame.requestFocus();
        requestFocusInWindow();
        frame.setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent e)
    {
        Object source = e.getSource();

        if (source == bTest)
        {
            System.out.println("Test");
        } 
    }

    @Override
    public void keyPressed(KeyEvent e)
    {
        int id = e.getKeyCode();

        if (id == KeyEvent.VK_ESCAPE)
        {
            this.dispose();
        }

        if (id == KeyEvent.VK_F5)
        {
            System.out.println("F5");
        }

    }

    @Override
    public void keyReleased(KeyEvent e)
    {

    }

    @Override
    public void keyTyped(KeyEvent e)
    {

    }
    public static void main(String[] args)
    {
        new Okienko();
    }

}

例如,可以通过调用组件上的setFocusable(true)方法来启用该组件的键盘焦点。 外接程序构造函数:

   setFocusable(true);
更多信息请点击此处:

添加

b测试设置可聚焦(假)