我正在使用套接字为java创建一个聊天。我的问题是,在用户的框架上,当我第一次按enter时,插入符号会转到下一行,之后我必须按backspace,否则会发送一个空白句子和我写的句子。我使用KeyListener来按enter键,并向keyPressed函数输入以下代码。
if(arg0.getKeyCode()==10)
{
System.out.println("Bika sto enter\n");
String toserver = ClientText.text2.getText();
try {
if(toserver.equals("close it")) {
ClientText.clientSocket.close();
}
ClientText.text2.moveCaretPosition(ClientText.text2.getSelectionStart());
ClientText.text2.setCaretPosition(0);
ClientText.text2.setText("");
ClientText.outToServer.writeBytes(toserver+'\n');
//ClientText.outToServer.writeUTF(toserver+'\n');
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
事情是,这只工作后,我第一次使用聊天。例如,我发送了一些东西,如果我按Enter键,插入符号就会转到下一行。然后,如果我写了什么,按回车键,插入符号去第二行的乞讨!所以有一个空的第一行,我每次都要抹去,对这一行有什么帮助吗?谢谢
我不确定您的GUI到底是什么样子,但我会使用javax.swing.JTextField而不是JTextArea。如果您希望使用JTextArea(例如,允许多行消息),并且无法使enter-to-send部分工作,我将求助于使用KeyListener作为键输入,就像普通计算机一样(如果所有其他操作都失败了)。
这就是我的意思:
import java.awt.event.*;
import javax.swing.JTextArea; //or JTextField
public class KeyInput implements KeyListener{
private JTextArea ta; //or JTextField
public KeyInput(JTextArea ta){ //or JTextField
this.ta = ta;
}
public void keyPressed(KeyEvent e){
if(e.getKeyCode() == KeyEvent.VK_ENTER){
//code to send message goes here
}else{
ta.append("\n"+e.getKeyChar());
}
}
//keyReleased(KeyEvent) and keyTyped(KeyEvent) methods go here, need no content
}
请记住,如果使用JTextArea,请确保将其放在JScrollPane中。
重要:在客户机类中,请确保添加ta.seteditable(false)
,其中ta是JTextArea的变量名(同样,可以替换为JTextField,在这种情况下不需要JScrollPane)。
问题内容: 我有一个显示值的文本字段。我想要的是,当用户在该文本字段中输入新值并按Enter时,将触发ajax函数以执行分页操作。我有一个像这样的文本字段: 当用户编写任何新值并按Enter时,我希望触发以下ajax函数: 我尝试使用keypress事件进行检测,但这不能解决问题。谁能指导我? 问题答案: 在jsfiddle上。
问题内容: 我有一个TextField可以输入搜索词,还有一个“ Go”按钮。但是在JavaFX2中,我如何做到这一点,以便在TextField中按Enter键可以执行操作? 谢谢 :) 问题答案: 您可以使用TextField的onAction属性并将其绑定到控制器中的方法。 在您的FXML文件中:
问题内容: 我是Bootstrap的新手,并且一直遇到这个问题。我有一个输入字段,只要输入一个数字,就会调用from函数,但是我希望在输入完整个数字后按“ Enter”键才能调用它。验证功能存在相同的问题-调用时间过早。 问题答案: 根据React Doc的说法,您可以听键盘事件,例如or ,not 。 更新:使用React.Component 这是使用React.Component的代码,它执行
由于某些原因,我的多线程netty服务器无法在Windows上使用autocomplete(在我最初的测试中,linux工作得很好),我发现terminal console appender和jansi是很多问题的“解决方案”,除了这个问题。奇怪的是,我的客户机运行相同的代码函数来调用LineReader.ReadLine(“>”);工作完美的自动完成与几乎完全相同的代码。我不知道问题出在哪里,因
我是一个新手,我正在尝试创建一个应用程序来在我的投资组合中使用。本质上,该程序是一个可以访问不同菜单的菜单(json文件:texas_pick.js,Breakth.js…),该程序旨在以按钮的形式显示菜单选项,按钮的详细信息从各自的json文件中检索。我面临的问题是,单击菜单选项时,会检索最后一个菜单项的数据。我将后端编程为只将商品名称和价格推送到数据库,而前端则检索这些数据并将其显示在表上。检
问题内容: 我正在制作一个应用程序,我想在用户按下+ 时触发一个功能(在本例中为)。我将如何做到这一点,最好不要使用jQuery? 问题答案: 添加事件监听器: 然后在处理程序中检查 不要忘记删除事件监听器