我有一个名为 GameUpdater 的 java 类,它扩展了 JInternalFrame。当我将类作为程序单独运行时,它曾经扩展 JFrame,但我将其更改为 JInternalFrame 以成为更大应用程序的一部分 - 现在可以通过菜单按钮访问。
当我按下这个菜单按钮时调用的函数如下:
private void update(){
GameUpdater gu = new GameUpdater();
desktop.add(gu); //add to JDesktopPane
gu.setSize(400, 300);
gu.setVisible(true);
gu.readMatches();//this function takes ages
gu.setMatch("Updating database...");//this is some output to the user, displays info in the internal frame
//try and insert into database
for(Match m : gu.getMatches()){
db.insertMatch(m);
}
gu.setMatch("DONE"); //now it shows the frame, way too late
}
gu.readMatches() 方法执行需要很长时间,因此它会定期更新 JInternalFrame 中的内容以显示其进度。但是,在此更新功能完成之前,不会显示框架!
就像 setVisible(true) 一直等到函数结束......
当它是 JFrame 时,它工作得非常好。JInternalFrame 是否有任何奇怪的属性会导致这种情况?
干杯