gpt4 book ai didi

java - 如何使这些按钮在按下按键时起作用?

转载 作者:行者123 更新时间:2023-11-30 08:14:11 26 4
gpt4 key购买 nike

  1. 这是代码。
  2. 如果我不先单击该按钮,则该按钮无法与按键一起使用。它会如果你能帮助我就好了。

创建此框架时我使用了 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,因此它仅在按钮具有焦点时(单击后)才起作用。

最好定义KeyBindings您必须处理的 key 。

关于java - 如何使这些按钮在按下按键时起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29895047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com