JavaFX TextArea 按 Enter 键发送
JavaFX About 725 words需求
聊天输入框需要使用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();
}
}
}
});
Views: 2,635 · Posted: 2022-01-12
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...