Java 如何使用JTextPanel获取字符串
我需要使用JtextPanel从键盘获取输入,按下enter键时将其保存在字符串中,然后使用该字符串根据输入中给出的行执行一些操作(例如“帮助”或“退出”)。我在JTextPanel的KeyListener中得到了这个:Java 如何使用JTextPanel获取字符串,java,input,jtextfield,bufferedreader,keylistener,Java,Input,Jtextfield,Bufferedreader,Keylistener,我需要使用JtextPanel从键盘获取输入,按下enter键时将其保存在字符串中,然后使用该字符串根据输入中给出的行执行一些操作(例如“帮助”或“退出”)。我在JTextPanel的KeyListener中得到了这个: ... public void keyPressed(KeyEvent e) { int key = e.getKeyCode(); if (key == KeyEvent.VK_ENTER) { inputString = tex
...
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_ENTER) {
inputString = textField.getText();
textArea.append(inputString + "\n");
textField.setText("");
}
}
....
,但我不能直接调用此方法。我需要像这样的东西
String input = processInput();
if((input).equals("help"))
............
else if ((input).equals("go"))
............
processInput应该是一个等待(key==KeyEvent.VK_ENTER)的方法,就像在C中使用scanf或在java中使用bufferedReader时发生的情况一样,它会等待您从键盘输入一个字符串,直到您按ENTER键。
编辑
我的应用程序管理这样的命令
while(!finished) {
finished = processInput()
}
processInput管理输入中给出的命令。这就是为什么我不能从keyListener调用processInput()
我希望我是清楚的,我的英语很差
谢谢我相信您已经被事件驱动界面的体系结构设计吸引住了 这里的想法是,你不去“等待”输入或任何东西。设置接口,连接KeyListener(您确实在某处有一个
addKeyListener()
,对吧…),然后就完成了。您放弃了控制流,让您的主要方法结束,完成
当用户做了一些值得注意的事情时,你会处理它,比如说你有一个方法processText(String text)
,你会在你的keylistener中说processText(inputString)代码>
因此,当用户输入某个内容并点击enter键时,它开始在keyListener中执行,它将控制流传递到processText()
方法,该方法将执行由于该文本而应该执行的任何操作。这种方法如何,非常简单
KeyListener:
...
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_ENTER) {
inputString = textField.getText();
textArea.append(inputString + "\n");
textField.setText("");
processInput(inputString); //crunch it
}
}
....
在其他地方
public void processInput(String input) {
if((input).equals("help"))
............
else if ((input).equals("go"))
............
}
只需调用processInput(inputString)代码>当您按Enter键时。