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: 3,399 · Posted: 2022-01-12
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...