需求描述:
点击父窗口的绩点排名按钮,弹出这个子窗口
关闭这个子窗口,则回到父窗口。
问题:关闭子窗口后,父窗口自动最小化了。
解决方法:
添加setVisible(true);
在父窗口的绩点排名按钮的监听事件执行方法中
private void buttonGpaRankActionPerformed(ActionEvent e)
添加代码如下:
private void buttonGpaRankActionPerformed(ActionEvent e) {
// TODO 需要写数据库查询
UIGpaRank aUIGpaRank=new UIGpaRank();
aUIGpaRank.addWindowListener(new WindowAdapter() {
@Override
public void windowOpened(WindowEvent e) {
UIGradeQuery.super.setEnabled(false);
}
@Override
public void windowClosed(WindowEvent e) {
setVisible(true);
UIGradeQuery.super.setEnabled(true);
}
});
}
也就是添加了windowListener,监听子窗口打开和关闭的事件。
当子窗口打开,则父窗口不可编辑,类似于冻结。
当子窗口关闭,则父窗口可见,且可以编辑。
关键就是子窗口关闭时的setVisible(true);
另外:
Java 1.5 中,虽然有show方法,但是我在新版本中提示该方法已经过时,不建议使用。而且还会出现父窗口闪烁的情况,也就是它先最小化再正常显示了,让人很奇怪。
满怀着完美主义的我,自己去寻找方法,发现大部分都是C++开发的桌面端,极少提到这个Java到底怎么做。
终于试出来了setVisible(true);