我设计的程序里的Bug:
触发一个事件的时候调用一个JFrame!
如点击该学生信息时当多次触发这个事件,就调用同一个JFrame并显示多个该学生界面。
如何屏蔽这样的问题。
如果该JFrame已显示,不再调用显示同一界面。
触发一个事件的时候调用一个JFrame!
如点击该学生信息时当多次触发这个事件,就调用同一个JFrame并显示多个该学生界面。
如何屏蔽这样的问题。
如果该JFrame已显示,不再调用显示同一界面。
然后调用这个JFrame时,先根据ID拿到这个JFrame对象,若为空,则show(),否则dipose()。
下面是一个JInternalFrame例子,希望对你有所启发,包com.mycompany.internalframe内有许多JInternalFrame窗体
// 获取内部窗体的唯一实例对象
private JInternalFrame getIFrame(String frameName) {
JInternalFrame jf = null;
if (!ifs.containsKey(frameName)) {
try {
Class fClass = Class.forName("com.mycompany.internalframe."
+ frameName);
Constructor constructor = fClass.getConstructor(null);
jf = (JInternalFrame) constructor.newInstance(null);
ifs.put(frameName, jf);
} catch (Exception e) {
e.printStackTrace();
}
} else
jf = ifs.get(frameName);
return jf;
}