JavaFX TextArea 按 Enter 键发送
JavaFX 评论 1 大约 725 字需求
聊天输入框需要使用TextArea
按Enter
键发送,按Shift+Enter
键换行,而默认TextArea
是按Enter
键换行的。
解决
注意:
经测试下来发现TextArea
在Windows
平台的换行符也是\n
,而即使使用System.lineSeparator()
方法去appendText
,也会转换成\n
。但在Windows
平台上不能用System.lineSeparator()
和textArea.getText()
相等来判断是否用户输入为空。应该使用去除空白字符后是否为空。
Java9
中String
新增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();
}
}
}
});
阅读 1772 · 发布于 2022-01-12
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
-
fHLvlxbf 1楼
e
Chrome | Windows 10 2023-07-24
随便看看
换一批
-
Java 语法糖 - switch 匹配字符串阅读 2188
-
Linux smaps_rollup 及 status 查看 Java 进程内存占用阅读 152
-
Prometheus+Grafana+nginx-lua-prometheus 监控 OpenResty阅读 3878
-
SCSS 样式阅读 1972
-
Spring Boot Gradle 项目添加本地 jar 包依赖阅读 3964
-
OLTP 与 OLAP阅读 3824
-
Vue $nextTick 解决 v-if 切换后操作 DOM 报错问题阅读 666
-
Rust 宏 macro阅读 287
-
Win10 激活码密钥阅读 3003
-
nginx: [emerg] unknown directive "if($request_uri" in阅读 6851