2013-05-02 44 views
1

我正尝试将我的JFrame放置在按钮单击上。但是,当我单击按钮时,除JFrame之外的所有内容都不会关闭!为什么是这样?它是否与另一个JFrame直接打开后有问题?JFrame不处理

public static void login() { 
    JFrame loginFrame = new JFrame(); 
    JPanel loginPanel = new JPanel(); 
    JButton loginButton = new JButton("Login"); 
    JLabel usernameText = new JLabel("Username:"); 
    JLabel passwordText = new JLabel("Password:"); 
    final JTextField usernameField = new JTextField(15); 
    final JTextField passwordField = new JTextField(15); 
    status.setForeground(Color.RED); 

    new LoginBackground(); 

    loginPanel.add(usernameText); 
    loginPanel.add(usernameField); 
    loginPanel.add(passwordText); 
    loginPanel.add(passwordField); 
    loginPanel.add(loginButton, BorderLayout.CENTER); 
    loginPanel.add(status); 
    loginFrame.add(loginPanel); 

    loginPanel.add(loginBackgroundLabel); 
    loginFrame.add(loginPanel); 

    loginFrame.repaint(); 
    loginFrame.setVisible(true); 
    loginFrame.setSize(1200, 800); 

    loginPanel.setLayout(null); 

    usernameText.setSize(100, 100); 
    passwordText.setSize(100, 100); 

    usernameText.setFont(new Font("Serif", Font.PLAIN, 20)); 
    usernameText.setForeground(Color.white); 

    passwordText.setFont(new Font("Serif", Font.PLAIN, 20)); 
    passwordText.setForeground(Color.white); 

    loginBackgroundLabel.setLocation(0, 0); 
    usernameText.setLocation(555, 230); 
    passwordText.setLocation(555, 290); 
    usernameField.setLocation(500, 300); 
    passwordField.setLocation(500, 350); 
    loginButton.setLocation(550, 400); 
    status.setLocation(500, 450); 

    loginPanel.revalidate(); 
    loginFrame.repaint(); 

    try { 
     Thread.sleep(1000); 
    } catch (InterruptedException e2) { 
     e2.printStackTrace(); 
    } 

    new Sound(); 

    login = false; 

    loginButton.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      try { 
       Frame.loginFrame.setVisible(false); 
       Frame.loginFrame.dispose(); 
       username = usernameField.getText(); 
       password = passwordField.getText(); 
       Connect.checkLogin(); 
       Sound.clip.stop(); 
      } catch (SQLException e1) { 
       e1.printStackTrace(); 
      } 
     } 
    }); 
} 
+0

你有没有发现任何异常? – upendra 2013-05-27 08:09:14

回答