Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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 System.readline()使用textarea_Java - Fatal编程技术网

Java System.readline()使用textarea

Java System.readline()使用textarea,java,Java,到目前为止,我得到的是这样的东西: JFrame jframe = new JFrame("Console"); JTextArea text=new JTextArea(10,30); JScrollPane jScrollPane = new JScrollPane(text); jframe.add(jScrollPane); jframe.setSize(500,300); jframe.setVisible(true); 如

到目前为止,我得到的是这样的东西:

 JFrame jframe = new JFrame("Console");
 JTextArea text=new JTextArea(10,30);   
 JScrollPane jScrollPane = new JScrollPane(text);       
 jframe.add(jScrollPane);        
 jframe.setSize(500,300);      
 jframe.setVisible(true);

如何使用textarea使用System.readline()?

事实是您不能,但是您可以获取JTextArea的文档,然后添加一个:


基本上,它是在您创建的JTextArea中输入任何文本时触发的,因此您可以检查输入的文本是否以换行符结尾,这相当于用户插入命令并点击Enter按钮。然后你可以抓取这一新行和上一行之间的文本(或者文本区域中的文本,如果到目前为止只有一行的话),并按照你想要的方式使用它。

可能重复stackoverflow上有很多关于使用Swing制作控制台的帖子,听起来像是你想要的。谷歌搜索“控制台jTextArea”和其他字符串,你会发现很多帖子。谢谢!但是addDocumentListener和addKeyListener之间有什么区别?@RickyCuarez DocumentListener检查textarea文档中的更改,而KeyListener检查关键事件。因此,DocumentListener将检查文本是否已更改,无论您是在textarea中粘贴内容还是手动添加文本,但KeyListener将侦听键(即粘贴时将在其中按Ctrl+V键),并且即使文本区域因某种原因不可编辑,也会触发键事件。因此,在这种情况下,DocumentListener是首选。那么,在按下Enter键之前,我如何收集输入?@RickyCuarez在按下Enter键之前,您不会收集输入,但当您这样做时,您可以抓取文档并根据换行符将其拆分,然后获取最后一行。因此,当DocumentListener在输入更改的情况下启动时,获取文档,使用字符串,带换行符regex的split(),然后从由此生成的数组中获取最后一行,瞧,用户给出了最后一条命令。非常感谢您的所有回答,这一切都非常有用。
JTextArea text=new JTextArea(10,30);
text.getDocument().addDocumentListener(new DocumentListener() {
   @Override
   public void insertUpdate(DocumentEvent arg0) {
   // Handle text entry - just get the text when a newline character is found at the end of the text
   }
});