Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使这些按钮在按键时起作用? 这是代码 如果我不先单击该按钮,则该按钮不适用于键。会的 如果你能帮助我,那就太好了_Java_Jbutton_Keyevent - Fatal编程技术网

Java 如何使这些按钮在按键时起作用? 这是代码 如果我不先单击该按钮,则该按钮不适用于键。会的 如果你能帮助我,那就太好了

Java 如何使这些按钮在按键时起作用? 这是代码 如果我不先单击该按钮,则该按钮不适用于键。会的 如果你能帮助我,那就太好了,java,jbutton,keyevent,Java,Jbutton,Keyevent,我在创建这个框架时使用了eclipse 这只是一个示例代码,但我只想知道它是如何工作的 如需更多详细信息,请在此询问 import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import ja

我在创建这个框架时使用了eclipse

这只是一个示例代码,但我只想知道它是如何工作的

如需更多详细信息,请在此询问

    import java.awt.EventQueue;

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

    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    import javax.swing.JTextField;


    public class ExampleApp {

    private JFrame frmHi;
    private JTextField textField;
    private JButton btnAnother;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ExampleApp window = new ExampleApp();
                    window.frmHi.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public ExampleApp() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frmHi = new JFrame();
        frmHi.setTitle("Hi");
        frmHi.setBounds(100, 100, 450, 300);
        frmHi.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frmHi.getContentPane().setLayout(null);

        JButton btnEnter = new JButton("Enter");
        btnEnter.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                    textField.setText("You pressed enter");
                }
            }
        });
        btnEnter.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                textField.setText("Hi there from button");
            }
        });
        btnEnter.setBounds(119, 63, 89, 23);
        frmHi.getContentPane().add(btnEnter);

        textField = new JTextField();
        textField.setEnabled(false);
        textField.setEditable(false);
        textField.setBounds(108, 30, 173, 20);
        frmHi.getContentPane().add(textField);
        textField.setColumns(10);

        btnAnother = new JButton("Backspace");
        btnAnother.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent arg0) {
                if (arg0.getKeyCode() == KeyEvent.VK_BACK_SPACE){
                    textField.setText("you pressed backspace");
                }
            }
        });
        btnAnother.setBounds(119, 119, 89, 23);
        frmHi.getContentPane().add(btnAnother);
    }

}

您的KeyListener添加到JButton,因此它仅在按钮具有焦点(单击后)时工作


最好定义您必须处理的键。

问题是什么?当我按enter键时,即使我编写了keylistener方法,它也不会显示任何内容,只有在我单击按钮后才起作用,所以问题是如何解决这个问题?退格有效吗?