JFrames and JDialogs sometimes open up behind their parent windows but have focus

一世执手 提交于 2019-12-01 18:14:30

问题


We are developing a rather big Java enterprise application with a traditional Swing client.

Every now and then, we facing the problem that random JDialogs and JFrames open up and getting the focus, but are hidden behind their parent windows.

Unfortunately, this phenomenon is not reproducible and happens on occasion. So far it was recognized on machines having Win7 and WinXP installed. Since all developers running Windows operating systems, that does not necessarily mean that this problem is specific to Windows.

I have no idea how to fix the problem. Maybe there is a Swing expert out there who can fix this? (We are still on with Java 6).


回答1:


JFrames should not have "parents" as they are meant to be the "parent-most" window of an application. If you have a window that is meant to be a "child" and is therefore meant to be above another window, then it should be a dialog such as a JDialog or JOptionPane and should have its parent window set accordingly.




回答2:


I once had the same problem: The error was that the JDialog's/JFrame's parent was in fact not set properly. I set it to the parent of the parent, which caused the issue.




回答3:


Try to add a FocusListener and listen for focus gained event where you can call yourWindow.toFront(). setAllwaysOnTop() could be interesting for you too.



来源:https://stackoverflow.com/questions/9836861/jframes-and-jdialogs-sometimes-open-up-behind-their-parent-windows-but-have-focu

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!