gpt4 book ai didi

JavaFX TextArea 包含 String.split() 的空行?

转载 作者:行者123 更新时间:2023-11-30 07:00:06 25 4
gpt4 key购买 nike

我已经尝试解决这个问题有一段时间了,但无法完全发挥作用。本质上,我有一个 JavaFX TextArea,我想用最后一行输入(即按下 ENTER 键后插入符号上方的行)构造一个名为 CommandWrapper 的新对象。每当我在输入命令后按 ENTER 键时,它都会完美地工作,但由于某种原因,如果我没有输入下面 GIF 中显示的命令,我的 String.split() 函数将不会获得空行:

https://gyazo.com/49ebd82be02fc271eeb7a879b194c63c

以下是有关该问题的代码:

package com.mswordhf.jnet.java.contollers;

import java.net.URL;
import java.util.Arrays;
import java.util.List;
import java.util.ResourceBundle;

import com.mswordhf.jnet.java.models.JnetModel;
import com.mswordhf.jnet.java.modules.CommandWrapper;

import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TextArea;
import javafx.scene.input.KeyCode;

public class CmdController implements Initializable {

private JnetModel model;
private int clientIndex;

@FXML private TextArea commandTextArea;

public CmdController(JnetModel model, int clientIndex) {
this.model = model;
this.clientIndex = clientIndex;
}

@Override
public void initialize(URL url, ResourceBundle rb) {

commandTextArea.setOnKeyPressed(keyEvent -> {

if(keyEvent.getCode() == KeyCode.ENTER) {

List<String> lines = Arrays.asList(commandTextArea.getText().split("\\n"));
String command = lines.get(lines.size() - 1);

System.out.println(command);

if(command == "\n") {
System.out.println("Worked");
}else {
CommandWrapper wrapper = new CommandWrapper(command);
model.getClients().get(clientIndex).getHandle().sendModule(wrapper);

if(!model.getCmdOutput.isRunning()) {
model.getCmdOutput.reset();
model.getCmdOutput.start();
}
}

}

});

model.getCmdOutput.setOnSucceeded(event -> {

for(String line : model.getCmdOutput.getValue()) {
commandTextArea.appendText(line + "\n");
}

model.clearList();

});

}

}

最佳答案

我真的不确定为什么,但使用:

commandTextArea.setOnKeyReleased(keyevent -> {
//code...
}

完全按照预期工作。

关于JavaFX TextArea 包含 String.split() 的空行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41070438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com