我有一个名为NetPosition的类,它有一个JFrame,而JFrame包含一个按钮,如果点击它会使另一个类的对象名为BuyScreen并打开另一个JFrame.THe问题是当父框架关闭时我想要所有的BuyScreen框架被关闭。这样的事情
frame.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
/*Closing all the buy screens and sells screens of marketwatch before market watch screen is closed*/
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
if(BuySellNetPosition.countBuySellNetPosition!=0)
{
BuySellNetPosition.frame
}
}
@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
});
子框架不是静态的。我可以同时打开几个BuyScreen框架。是否可以在不知道该类的引用名称的情况下关闭特定类的所有框架。 以前我制作了一系列BuyScreen对象来处理这个问题。但我想知道是否还有其他方法。
答案 0 :(得分:1)
每当您创建新的BuyScreen
时,您应该将其作为侦听器添加到您想要响应的主框架中。这样,无论何时主框架关闭,它都会通知您要关闭的所有BuyScreen
帧。
您不需要自己维护一组框架。 addWindowListener()
电话会为您做到这一点。
windowClosing()
中的BuyScreen
实施只需检查它是该事件来源的主窗口,然后自行关闭。
答案 1 :(得分:0)
您必须将所有BuyScreens
存储在某种集合中,例如。 LinkedList<ButScreen>
。您将能够遍历该集合并关闭相关的BuyScreens
。
或将JDialogs
与父设置一起用作BuyScreens
。当父框架/对话框关闭时,它们将自动关闭。