Java OpenResty Spring Spring Boot MySQL Redis MongoDB PostgreSQL Linux Android Nginx 面试 小程序 Arthas JVM AQS juc Kubernetes Docker DevOps


JavaFX TextArea 按 Enter 键发送

JavaFX 大约 725 字

需求

聊天输入框需要使用TextAreaEnter键发送,按Shift+Enter键换行,而默认TextArea是按Enter键换行的。

解决

注意:

经测试下来发现TextAreaWindows平台的换行符也是\n,而即使使用System.lineSeparator()方法去appendText,也会转换成\n。但在Windows平台上不能用System.lineSeparator()textArea.getText()相等来判断是否用户输入为空。应该使用去除空白字符后是否为空。

Java9String新增isBlank()去除空白字符包括空白Unicode后再判空。

Java8可以使用trim()后再使用isEmpty()判断是否输入为空。

textArea.setOnKeyPressed(event -> {
    if (event.getCode() == KeyCode.ENTER) {
        event.consume();
        if (event.isShiftDown()) {
            textArea.appendText(System.lineSeparator());
        } else {
            String text = textArea.getText();
            textArea.clear();
            if(!text.isBlank()){
//                sendFunction();
            }
        }
    }
});
阅读 1073 · 发布于 2022-01-12

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb

扫描下方二维码关注公众号和小程序↓↓↓

扫描二维码关注我
昵称:
随便看看 换一批