如何在另一个类JavaFX中的textarea上设置文本

时间:2015-10-23 13:35:27

标签: java javafx

我在另一个类的textarea上设置文本时遇到问题。完成简单的脚本后,我想用InputStreamReader在另一个类中更改textarea。我遇到的错误是:java.lang.NullPointerException。 我试图制作get()和set()方法,如果我在包含InputStreamReader的类中使用初始化值创建字符串并尝试使用textarea在类中进行sysout,它会向我显示该字符串但是如果我想要setText则有一个NPE 。 SimpleStringProperty是很好的解决方案吗?

这是输出:

            Process process;
            process = Runtime.getRuntime().exec(PATH_TO_SIKULI + " -r " + s.toString());
            BufferedReader stdInput = new BufferedReader(new InputStreamReader(process.getInputStream()));
            BufferedReader stdError = new BufferedReader(new InputStreamReader(process.getErrorStream()));
            String as=null;
            stringBuilder = new StringBuilder(as);

            while ((as = stdInput.readLine()) != null) {
                stringBuilder=stringBuilder.append(as+"\n");
            }
            while ((as = stdError.readLine()) != null) {
                stringBuilder=stringBuilder.append(as+"\n");
            }
            try {
                process.waitFor();
            } catch (InterruptedException e) {
                e.printStackTrace();

            }
    }

使用TextArea的类

public class ResultController实现Initializable {

@FXML
public TextArea resultTextArea;

@Override
public void initialize(URL location, ResourceBundle resources) {
    Platform.runLater(new Runnable() {
        @Override
        public void run() {

        }
    });



}

1 个答案:

答案 0 :(得分:1)

抛出你的NullPointer:

String as=null; 
StringBuilder stringBuilder = new StringBuilder(as);

由于文档非常好描述,您无法将null传递给 StringBuilder构造函数。 但情况就是这样:as = null

  

java.lang.StringBuilder.StringBuilder(String str)

     

构造一个初始化为。的内容的字符串构建器   指定字符串。字符串生成器的初始容量为16   加上字符串参数的长度。

     

参数:str缓冲区的初始内容。抛出:   NullPointerException - 如果str为null