gpt4 book ai didi

java - 在方法中使用 KeyEvent

转载 作者:行者123 更新时间:2023-12-01 21:38:31 26 4
gpt4 key购买 nike

如果我使用 GUI 并且有一个文本字段,用户可以在其中输入内容,然后程序会输入回来,那么我将如何在方法期间访问 KeyEvent? (keyEvent 是当按下 Enter 键时 -> 文本字段中的文本将生成响应)

例如:如果程序(通过方法)询问用户“你想吃这个蛋糕吗?”然后用户将在文本字段中键入"is"或“否”,并且根据响应,程序将以另一种方法给出另一个问题或情况。

伪代码:

public void cakeQuestion(){
eventList.setText(eventList.getText() + "\nWould You Like To Eat This Cake?"); //eventList is a textArea
//***KeyEvent takes place, perhaps saving the user's input as a String called resposne
if(response.equals("yes"){
eatCake //eatCake is another method with another situation
}
else if(response.equals("no"){
eatPie //eatPie is another method with another situation
}
else{eventList.setText(eventList.getText() + "\nI don't understand that response");}
}

最佳答案

解决方案:您不使用KeyEvent。如果您正在等待 JTextField 中的回车键,您只需为该字段提供一个 ActionListener,这将在按下回车键时做出响应。

myTextField.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String response = e.getActionCommand();
if(response.equals("yes"){
eatCake(); //eatCake is another method with another situation
}
else if(response.equals("no"){
eatPie(); //eatPie is another method with another situation
} else{
eventList.setText(eventList.getText() + "\nI don't understand that response");
}
}
});

侧面位:

  • 如果您希望 GUI 仅排除有限数量的明确定义的条目,例如"is"和“否”,则不要使用 JTextField,而是使用更适合受控输入的内容,例如 JRadioButtons(已添加) ButtonGroup)、JSpinner 或 JComboBox。与其警告用户他们的输入不正确,不如从一开始就不允许他们输入错误的内容。
  • 如果您想响应文本组件(例如 JTextField、JTextArea...)中的按键操作,请将 DocumentListener 添加到文本组件的 Document。
  • 如果您想要过滤在 int 文本组件中输入的文本,例如,检查文本的有效性,如果无效则不允许在字段中出现,然后将 DocumentFilter 添加到文本组件的文档中。

关于java - 在方法中使用 KeyEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36680091/

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