窗口在循环中。如何防止一次打开所有窗口?
问题描述:
我正在为德州扑克编码一个投注系统,我一次打开所有窗口都有问题。窗口在循环中。如何防止一次打开所有窗口?
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。 (对不起,我的英文很难)
谢谢。
答
您可以通过使用WindowListener或WindowAdapter在结束活动中打开一个新窗口。
的代码可能是这样的:
WindowAdapter adapter = new WindowAdapter(){
void windowClosed(WindowEvent e){
//open next window.
}
}
jFrame.addWindowListener(adapter);
那么我会建议放置参数要在某种队列打开窗户,并在每个windowClosed
事件,你会弹出队列中的下一个窗口参数并初始化它。
请看看[多个JFrames的用途:?好还是不好的做法(https://*.com/questions/9554636/the-use-of-multiple-jframes-good-or-bad-练习)了解您为什么想要更改和改进当前的用户界面结构。 –
但最重要的是,循环结构不应该用于*事件驱动的GUI程序中的数据吸收。相反,您可能会对事件做出反应,可能是窗口监听器事件或按钮按下(ActionListener)事件,并根据事件和程序的当前状态更改程序行为。 –