JavaFX textArea.setText无法循环工作

时间:2019-03-06 09:08:53

标签: javafx textarea

我有一个名为doWrite的函数,该函数基本上表示按钮的操作。 在此函数中,在for循环中,txtShow.setText(st.toString())在GUI上未显示任何数据,但是使用System.out.println在控制台上可以看到相同的内容, 我还使用了函数末尾的txtShow.setText来打印“成功写入的块”,但这已成功显示在GUI上。 我想知道为什么它不能在for循环中使用。

控制器代码的一部分:

npm run build

主要代码:

 @FXML
    void doWrite(ActionEvent event) throws IOException, InterruptedException {
        //txtShow.setText("Scan your card");
        OutputStream os=s1.getOutputStream();
        String messageString ="%"+txtBlock.getText()+txtData.getText(); 
        os.write(messageString.getBytes());
        //System.out.println(messageString);
        os.flush();
        os.close();

    Thread.sleep(2000);

    InputStream is=s1.getInputStream();

    StringBuilder st = new StringBuilder();


        for(int i=0,x=0;true;i++){
        char a=(char)is.read();
        if(a == '@'){

            txtShow.setText(st.toString());
            System.out.print(st.toString());
         st.setLength(0);
            Thread.sleep(5000);
            continue;
        }
        if(a == '*')
        {
            break;
        }

        st=st.append(a);
    }
    System.out.print( st.toString());
    txtShow.setText("Block written successfully");
    //doAlert("Block written successfully !");

}

0 个答案:

没有答案