我正在尝试构建一个 Swing 应用程序,如果没有用户登录,则将登录面板显示为玻璃窗格。如果我尝试隐藏到登录玻璃窗格,它仍然可见,但不会对任何用户交互作出反应。
你看到这里有什么问题吗?
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();
}