Georg: Wie JFrame schließen?

Hallo,

ich arbeite gerade an einem einfachen Loginsystem und habe Probleme, wenn es darum geht, ein Frame zu schließen. Ich möchte zum Beispiel - sobald man sich erfolgreich registriert hat - dass sich der Frame Register schließt. Ich weiß allerdings nicht, wie man konkret auf das Frame zugreifen kann.

Hier ein Codeausschnitt:

public void register() {  
		// RegisterFrame  
  
		final JFrame register = new JFrame("Register");  
		JPanel registerpanel = new JPanel();  
  
  
		registerpanel.setLayout(null);  
		register.setSize(350, 230);  
		register.setLocation(600, 200);  
		register.setTitle("JWordPuzzle V1.0 - Become a member!");  
  
		register_label = new JLabel("<html>Please"  
				+ " register to play the Word Puzzle Game.</html>");  
		reg_user_label = new JLabel("Username:");  
		reg_pw_label = new JLabel("Password:");  
		verify_label = new JLabel("Verify Password:");  
		reg_pw = new JPasswordField(20);  
		reg_pw_verify = new JPasswordField(20);  
		registerbutton = new JButton("Register");  
		registerbutton.addActionListener(this);  
		reg_user = new JTextField(20);  
  
		register.add(registerpanel);  
		register_label.setBounds(10, 1, 500, 50);  
		registerpanel.add(register_label);  
		reg_user_label.setBounds(10, 50, 80, 25);  
		registerpanel.add(reg_user_label);  
		reg_user.setBounds(120, 50, 160, 25);  
		registerpanel.add(reg_user);  
		reg_pw_label.setBounds(10, 80, 80, 25);  
		registerpanel.add(reg_pw_label);  
		reg_pw.setBounds(120, 80, 160, 25);  
		registerpanel.add(reg_pw);  
		verify_label.setBounds(10, 110, 100, 25);  
		registerpanel.add(verify_label);  
		reg_pw_verify.setBounds(120, 110, 160, 25);  
		registerpanel.add(reg_pw_verify);  
		registerbutton.setBounds(120, 150, 110, 30);  
		registerpanel.add(registerbutton);  
		register.setVisible(true);  
  
  
	   	}  
.......  
if (ae.getSource() == this.registerbutton) {  
			try {  
                                fdusername.setText("");  
                                fdpassword.setText("");  
				String username;  
				String userr;  
				userr = (reg_user.getText());  
				username = userr.toLowerCase();  
  
				char[] reg_pass = reg_pw.getPassword();  
				String password = new String(reg_pass);  
  
				char[] reg_pass2 = reg_pw_verify.getPassword();  
				String verify = new String(reg_pass2);  
  
				if (!obj.checkExist(file_name, username)) {  
					if (!checkEmpty(username, password)  
							&& verifyPassword(password, verify)  
							&& checkName(username) && isLeadingLetter(username)) {  
  
						String create_account = username + " " + password  
								+ " 0 0";  
						obj.saveToFile(file_name, create_account);  
						showMessage("The account is created.");  
						obj.saveToFile(file_online, username);  
  
						game();  
                                                dispose();  
					}  
				} else {  
					showMessage("The account already exists.");  
				}  
			} catch (RemoteException ex) {  
				Logger.getLogger(JWordPuzzleClientImp.class.getName()).log(  
						Level.SEVERE, null, ex);  
			}  
		}  
.....

Der dispose(); Befehl klappt nicht, da man nicht weiß, welcher Frame gemeint ist, oder? Könnt ihr mir helfen? Wie kann ich auf den Frame register hinweisen?

Danke und Grüße

  1. Hi,

    public void register() {

      final JFrame register = new JFrame("Register");  
    

    [...]

      register.setVisible(true);  
    

    .....

      
    Wie Du den JFrame register öffnest, weißt Du also.  
    Wenn register.setVisible(true) den JFrame öffnet, was könnte man dann als Parameterwert an setVisibile() wohl übergeben, um ihn wieder zu schließen?  
      
    
    > Der dispose(); Befehl klappt nicht,  
      
    Für welches Object rufst Du denn diese Methode auf?  
      
    
    > da man nicht weiß, welcher Frame gemeint ist, oder?  
      
    Doch, für welches Object diese Methode aufgerufen wird, ergibt sich doch aus dem Aufruf. Wenn vor dem Methodenname keine Instanz angegeben ist, dann wird die Methode (sofern sie nicht static ist) für "this" aufgerufen.  
      
    cu,  
    Andreas
    
    -- 
    [Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)  
    [O o ostern ...](http://ostereier.andreas-waechter.de/)  
      
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.