2017-08-01 94 views
0

我正在为德州扑克编码一个投注系统,我一次打开所有窗口都有问题。窗口在循环中。如何防止一次打开所有窗口?

while (rozdania > 0){ 

     for(Player p : pp){ 
      if(p.inGame()){ 
       pula+=p.bidWindow(); 
      } 
     } 

     rozdania--; 
    } 

public int bidWindow(){ 
    new WindowBid(this); 


    return 1; 

} 

public WindowBid(Player p){ 
    setDefaultCloseOperation(EXIT_ON_CLOSE); 
    setSize(400,175); 
    setVisible(true); 

} 

我想在上一次关闭后立即打开窗口。但我不知道如何去做。

我正在使用JFrame。 (对不起,我的英文很难)

谢谢。

+1

请看看[多个JFrames的用途:?好还是不好的做法(https://stackoverflow.com/questions/9554636/the-use-of-multiple-jframes-good-or-bad-练习)了解您为什么想要更改和改进当前的用户界面结构。 –

+0

但最重要的是,循环结构不应该用于*事件驱动的GUI程序中的数据吸收。相反,您可能会对事件做出反应,可能是窗口监听器事件或按钮按下(ActionListener)事件,并根据事件和程序的当前状态更改程序行为。 –

回答

0

您可以通过使用WindowListenerWindowAdapter在结束活动中打开一个新窗口。

的代码可能是这样的:

WindowAdapter adapter = new WindowAdapter(){ 
    void windowClosed(WindowEvent e){ 
     //open next window. 
    } 
} 

jFrame.addWindowListener(adapter); 

那么我会建议放置参数要在某种队列打开窗户,并在每个windowClosed事件,你会弹出队列中的下一个窗口参数并初始化它。