我有一个名为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 !");
}