这是一个JButton的事件响应,如果点击按钮则生成另一个框架及其控件,并且要使目前的事件响应暂停,等待新生成的框架中的标记flag变为1时JButton的事件响应才会继续。但目前,使用while true后,新的框架不能正确显示(控件都不显示),删除while true后又都正常!!!!!!!!!!!请各位帮帮忙
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jb) {
AdministerManager am=new AdministerManager(vect);

           
while (true) {
int flag2 = am.getFlag();
if (flag2 == 1) {
System.out.println("Administer 123");
break;
}
}
System.out.println("==================="); dkp_total = am.getDkp_total();
dkp_cost = am.getDkp_cost();
name = am.getName();

}
}

解决方案 »

  1.   

    是不是你這while一直都跳不出去啊~  你打印出來試試     沒太明白你的意思
      

  2.   


    跳不出去的话,至少新的Frame和其控件应该能正确显示啊。况且新Frame中有个flag变量,当其变为1时,while就能break了
      

  3.   


    有两个frame A和B。A上有个BUTTON的事件响应,当点击时B显示出来,并且A进入等待(等待B上的TEXTFILED的数据发生变化传给A)。现在问题是我使用while true后,B就无法显示。删除循环则正常,但从B传来的数据只是默认的并非我需要的!!!!!!!!!!!!!!!
      

  4.   

    有兩個建議  你試試 
    1.  
    while (true) { 
    int flag2 = am.getFlag(); 
    //在這加一條System.out.println(“××××××××××”); 看看到底輸出了多少次
    if (flag2 == 1) { 
    System.out.println("Administer 123"); 
    break; 


    2.在B的TEXTFILED加一個監聽,如果數據變化,進行你想要的操作。
      

  5.   

    最主要的问题是点击A frame的BUTTON后不能正常启动B,也就是说代码中AdministerManager am=new AdministerManager(vect); 没有正确的运行。
      

  6.   

    它執不執行和while有啥關系?   ~~~  不明白了 
      

  7.   

    应该是你的while把线程阻塞了,另一个窗口没执行完,你另启一个线程来执行循环试试