JInternalFrame to front and focussed

元气小坏坏 提交于 2019-12-02 06:22:49

问题


How does one push a JInternalFrame to the top of all the frames in a JDesktopPane?


回答1:


Read the JInternalFrame API and follow the link to the Swing tutorial on "How to Use Internal Frames" where you will find a working example of how to "select" the active internal frame.




回答2:


try grabFocus() and requestFocus(). One of the should work. I personally used only requestFocus().




回答3:


In this example, a javax.swing.Action is used to select frames from a menu.




回答4:


The OP has noted that setSelected was not working, and he needed to call activateFrame manually. This sounds similar to an issue I was having with GTKLookAndFeel. I had an application that was all wired up to use setSelected to eventually trigger activateFrame. Worked fine with Windows and Mac native look and feel; activateFrame would get called automatically.

On Ubuntu, the system selected LaF was GTKLookAndFeel and for whatever reason this was not calling activateFrame. It didn't appear that setSelected was throwing an error or anything, it just wasn't getting around to calling activateFrame as the other LaFs seem to do. I think it's a GTKLookAndFeel compatibility issue.

In the end I punted on this and just prohibited GTKLookAndFeel, replacing it with Metal. Motif also had the compatible behavior (but it's so ugly...). The code looks something like this:

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
if (UIManager.getLookAndFeel() instanceof com.sun.java.swing.plaf.gtk.GTKLookAndFeel)
    UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());



回答5:


/*make current JInternalFrame deselected by calling JInternalFrame method setSelected(false)

*/then select new JInternalFrame using the same method; ie setSelected(true)

sample code:

try{ jframe1.setSelected(false); jframe2.setSelected(true); }catch (PropertyVetoException ex) {}




回答6:


Closing a modal JInternalFrame see the post by Mr. Zen(me)



来源:https://stackoverflow.com/questions/4337838/jinternalframe-to-front-and-focussed

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