gpt4 book ai didi

Java向keyReleased添加时间?

转载 作者:行者123 更新时间:2023-11-29 05:38:38 24 4
gpt4 key购买 nike

我正在捕获 JTextArea 中的每个按键并将其发送到聊天服务器,让另一端的人知道用户正在输入。

目前我得到了这个:

sm.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
sendMsg(sm.getText(), "message", atName);
sm.setText(null);
} else { // Typing
sendMsg("", "typing", atName);
}
}
});

这很好用,它在每个按键上发送 sendMsg("", "typing", atName); 除了 Enter

然而,这会稍微降低服务器速度。

我怎样才能添加一个计时器或其他东西来避免发送所有的按键?

最佳答案

你可以有一个标志来指示用户是否正在输入。然后你只能在他们第一次按下一个键时发送一条“正在输入”消息。

boolean isTyping = false;

sm.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
sendMsg(sm.getText(), "message", atName);
sm.setText(null);
isTyping = false;
} else { // Typing
if (isTyping) {
if (sm.getText().length() == 0) {
isTyping = false;
// Send a message indicating the user has stopped typing
sendMsg("", "stopTyping", atName); //Customize the message type here, may need to adjust the server
}
} else {
isTyping = true;
sendMsg("", "typing", atName);
}
}
}
});

关于Java向keyReleased添加时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18562870/

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