对不起,如果这看起来有点太容易了,我是JavaFX的新手,这是我用它构建的第一个小应用程序 .
我正在尝试做一个简单的聊天客户端 . 我使用JavaFX场景构建器来创建客户端UI,以及连接到FXML的控制器类 .
我怎样才能将文本区域中的当前文本提交给服务器,并在按下回车键时清除文本区域,而不是使用某种“发送”按钮?
编辑:这是不起作用的代码:
//...
public class FXMLDocumentController
{
//...
@FXML private TextArea messageBox;
//...
messageBox.setOnKeyPressed(new EventHandler<KeyEvent>()
{
@Override
public void handle(KeyEvent keyEvent)
{
if(keyEvent.getCode() == KeyCode.ENTER)
{
//sendMessage();
}
}
});
//...
3 回答
这应该可以满足您的需求:
我可以补充一点,如果你倾向于同时提供一个按钮和一个回车键事件,你可以用这样的方式将两个控件的事件处理函数绑定到一个公共函数:
无论哪种方式都有效,祝你好运 .
除了其他答案之外,我认为如果用户按下SHIFT ENTER,在某些应用程序中实际上不能实际调用send函数可能会很有用 . 在那种情况下,他/她可能真的想要一条新线 .
如果您不想发送空消息,可以执行以下操作: