Hallo,
ich hoffe das gehört hier in die Kategorie. Ich habe eine Klasse MainMenu() mit einem Menu. Hier gibt es den Punkt anmelden. von hier wird ein neues JInternalFrame aufgerufen indem der User und das Passwort überprüft wird. Ist das erfolgreich, dann wird ein SystemProperty (SignedIn) auf wahr gesetzt und das Frame geschlossen.
Das geänderte Systemproperty soll in meiner MainMenu() nun den aufruf eineer UpdateView() aufrufen damit die anderen Menüpunkte freigeschaltet werden.
Ich bin hier nun schon siet 2 Tagen am "rumdoktern" und googeln aber bekomme das einfach nicht hin. Ich habe es auch schon mittels postEvent(...) versucht
Auch eigene EvernDispatcher implementiert, aber es will einfach nicht funktionieren. Eine andere Alternative um meine Menus zu aktualisieren ist mir aber auch nicht eingefallen um das Problem zu umgehen.
Bin mittlerweile etwas ratlos. Bin für jeden guten Tipp dankbar. Hier noch das Gerüst meines MainMenu().
Danke schon mal im voraus
ich hoffe das gehört hier in die Kategorie. Ich habe eine Klasse MainMenu() mit einem Menu. Hier gibt es den Punkt anmelden. von hier wird ein neues JInternalFrame aufgerufen indem der User und das Passwort überprüft wird. Ist das erfolgreich, dann wird ein SystemProperty (SignedIn) auf wahr gesetzt und das Frame geschlossen.
Das geänderte Systemproperty soll in meiner MainMenu() nun den aufruf eineer UpdateView() aufrufen damit die anderen Menüpunkte freigeschaltet werden.
Ich bin hier nun schon siet 2 Tagen am "rumdoktern" und googeln aber bekomme das einfach nicht hin. Ich habe es auch schon mittels postEvent(...) versucht
Code:
private void handleEventSignIn(){
try {
DBHelper.getInstance().checkSignIn(txf_userName.getText(), txp_password.getPassword(), isDefaultPassw());
Globals.getInstance().setProperty(IGlobalProperties.AUTHENTICATED, "true");
// send a new Event
getDesktopPane().updateUI();
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(
new ActionEvent(this, 11, "Test"));
dispose();
} catch (InvalidPasswordException ipwe) {
JOptionPane.showMessageDialog( null, "Der Benutzername oder das Passwort sind ungültig. Bitte prüfen!", "Fehler", JOptionPane.INFORMATION_MESSAGE);
}
catch (InvalidDatabaseException idbe) {
JOptionPane.showMessageDialog( null, "Die Datenbank konnte nicht gefunden oder nicht geöffnet werden. Bitte prüfen.", "Fehler", JOptionPane.INFORMATION_MESSAGE);
}
catch (NoDefaultPasswordException dpwe) {
JOptionPane.showMessageDialog( null, "Bei der ersten Anmeldung bitte das Passwort als 'default' markieren.", "Fehler", JOptionPane.INFORMATION_MESSAGE);
}
}
Auch eigene EvernDispatcher implementiert, aber es will einfach nicht funktionieren. Eine andere Alternative um meine Menus zu aktualisieren ist mir aber auch nicht eingefallen um das Problem zu umgehen.
Bin mittlerweile etwas ratlos. Bin für jeden guten Tipp dankbar. Hier noch das Gerüst meines MainMenu().
Code:
public class MainMenue extends JFrame {
public MainMenue() throws HeadlessException {
super();
addWindowListener(new FensterEreignis());
initMainMenue();
}
private void initMainMenue()
{
desktop = new JDesktopPane();
this.setContentPane(desktop);
this.setBounds(50, 20, 1000, 700);
this.setVisible(true);
newMenue();
}
private void handleEventSignIn()
{
JInternalFrame iFrame = new SignIn("Anmelden");
getDesktop().add(iFrame);
iFrame.setVisible(true);
}
private void newMenue()
{
boolean singedIn = Globals.getInstance().isAuthenticated();
AWTEventListener ael = new AWTEventListener() {
public void eventDispatched( AWTEvent event ) {
int id = event.getID();
} };
Toolkit.getDefaultToolkit().addAWTEventListener( ael, AWTEvent.ITEM_EVENT_MASK );
jMenuBar1 = new JMenuBar();
setJMenuBar(jMenuBar1);
{
jMenu1 = new JMenu();
jMenuBar1.add(jMenu1);
jMenu1.setText("Anwendung");
{
signInMenuItem = new JMenuItem();
jMenu1.add(signInMenuItem);
signInMenuItem.setText("Anmelden");
signInMenuItem.setEnabled(!singedIn);
signInMenuItem.addActionListener(new ActionListener() {
public void actionPerformed( ActionEvent e ) {
handleEventSignIn();
}
});
signOffMenuItem = new JMenuItem();
jMenu1.add(signOffMenuItem);
signOffMenuItem.setText("Abmelden");
signOffMenuItem.setEnabled(singedIn);
signOffMenuItem.addActionListener(new ActionListener() {
public void actionPerformed( ActionEvent e ) {
handleEventSignoff();
}
});
exitMenuItem = new JMenuItem();
jMenu1.add(exitMenuItem);
exitMenuItem.setText("Beenden");
exitMenuItem.addActionListener(new ActionListener() {
public void actionPerformed( ActionEvent e ) {
System.exit(0);
}
});
}
}
}
public void updateView(){
// hier Menu aktualisieren
}
}
Danke schon mal im voraus