我有fetch函数,该函数从arduino中获取数据,在此函数中,我使用无限while循环,并且我希望在按GUI中的单选按钮时退出while循环,但是我无法按由于while循环导致GUI挂起,导致单选按钮。
我已经尽了最大的努力,并且达到了最终代码。
@FXML
void doFetch(ActionEvent event) throws IOException,
InterruptedException {
while(true){
OutputStream os=s1.getOutputStream();
String messageString1 ="^";
//Fetching input key
String messageString2="";
messageString2 = txtKey1.getText();
// decoding the key
String aa2[]=messageString2.split(" ");
int dec2[]=new int[6];
String c2="";
for(int i=0;i<6;i++)
{
dec2[i]=Integer.parseInt(aa2[i],16);
c2=c2.concat(String.valueOf(dec2[i]));
if(i != 5)
{
c2=c2.concat(" ");
}
}
// concatenating the whole string
String messageString=c2;
messageString=messageString.concat(")");
messageString=messageString.concat(messageString1);
System.out.println(messageString);
os.write(messageString.getBytes());
os.flush();
os.close();
Thread.sleep(2000);
// sending string to serial monitor
scan();// receiving data from arduino
try {
Thread.sleep(5000);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
InputStream is1=s1.getInputStream();
//doAlert("Block written successfully !");
for(int i=0;i<20;i++){
Thread.sleep(5000);
System.out.println("saa");
if((char)is1.read()=='-')
break;
}
try
{
if(txtStop.isSelected()==true)
break;
else if(txtStop1.isSelected()==true)
break;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
想要在循环中设置ID = txtStop的停止按钮时中断此操作