java - Swing - Swapping and hiding glass pane does not work - glass pane remains visible -
i trying build swing application shows login panel glasspane if no user loggeg in. if try hide login glass pane remains visible, won't react user interactions.
do see problems here?
public class hauptframe implements sessionlistener { private static final long serialversionuid = 7985854311368619704l; public hauptframe() { initialize(); } public void initialize() { session.get().addsessionlistener(this); setsize(1024, 768); setvisible(true); startandcheck(); } public void startandcheck() { if (!databasemanager.doesconfigexist()) { setnewglasspane(new setupglasspanel(this)); } else if (new userdao().getalluser().size() == 0) { setnewglasspane(new firstuserglasspane(this)); } else if (session.get().getuser() == null) { setnewglasspane(new loginglasspanel()); } else { setnewglasspane(null); } } public void setnewglasspane(jpanel glasspane) { if (glasspane != null) { getglasspane().setvisible(false); setglasspane(glasspane); getglasspane().setvisible(true); } else { if (getglasspane().isvisible()) { getglasspane().setvisible(false); } } } @override public void usersignedin(user user) { removeall(); startandcheck(); } @override public void usersignedoff() { startandcheck(); }
do see problems here?
- glasspane doesn't consume keyevents
- have add keylistener jcomponent added glasspane, , override consume()
- mouseevents consumed in area covering jpanel or jcomponent, top component on hierarchy
- add jlabel (transparent default) covering whore rootpane area, add proper layoutmanager jlabel, there put jpanel or ....
- invoke glasspane jframe.getrootpane
Comments
Post a Comment