JavaFX TextArea 按 Enter 键发送

JavaFX About 725 words

需求

聊天输入框需要使用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();
            }
        }
    }
});
Views: 2,675 · Posted: 2022-01-12

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

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

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


Today On History
Browsing Refresh