如何使用java中的按钮关闭/隐藏/关闭我的Jframe /类?

时间:2015-04-06 16:28:51

标签: java swing

对,所以我有一个简单的.setVisible(true);导航到其他页面,但我希望能够在某些部分隐藏内容,在某些部分关闭整个程序,例如"取消按钮"关闭整个程序。 我尝试过同样的事情但是(假);它没有用 请告诉我如何做到这一点,谢谢你,我想这样做而不改变我现在的代码,因为它会让我感到困惑,也不会让我对编程感到困惑。 这是我使用GUI构建器的代码。

import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.Arrays;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class MainMenu extends javax.swing.JFrame {
    private JLabel username;
    private JLabel passwordlbl;
    private JLabel Welco;
    private JPasswordField Passwordfld;
    private JButton Cancelbtn;
    private JButton OKbtn;
    private JTextField Usernametxt;
    private String Password = "pass";

    /**
    * Auto-generated main method to display this JFrame
    */

    public static void main(String[] args) {
        //PASSWORD field to store new password inside
        //Passwordfld.setEchoChar('*');
        //Passwordfld.addActionListener(new AL());

        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                MainMenu inst = new MainMenu();
                inst.setLocationRelativeTo(null);
                inst.setVisible(true);

            }
        });
    }

    public MainMenu() {
        super();
        initGUI();
    }
    private static boolean isPasswordCorrect(char[] input) {
        boolean isCorrect = true;
        char[] correctPassword = { 'b', 'u', 'g', 'a', 'b', 'o', 'o' };

        if (input.length != correctPassword.length) {
            isCorrect = false;
        } else {
            isCorrect = Arrays.equals (input, correctPassword);
        }

        //Zero out the password.
        Arrays.fill(correctPassword,'0');

        return isCorrect;
    }
    private void initGUI() {
        try {
            setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
            getContentPane().setLayout(null);

            username = new JLabel();
            getContentPane().add(username);
            username.setText("User Name:");
            username.setBounds(63, 113, 80, 16);

            passwordlbl = new JLabel();
            getContentPane().add(passwordlbl);
            passwordlbl.setText("Password:");
            passwordlbl.setBounds(63, 160, 72, 16);

            Usernametxt = new JTextField();
            getContentPane().add(Usernametxt);
            Usernametxt.setBounds(198, 110, 79, 23);

            final JPasswordField Passwordfld = new JPasswordField();
            // Passwordfld.setText("Secret");
            getContentPane().add(Passwordfld);
            Passwordfld.setBounds(198, 157, 79, 23);
            Passwordfld.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // System.out.println("Passwordfld.actionPerformed, event="+evt);
                // TODO add your code for Passwordfld.actionPerformed
            }
            });
            OKbtn = new JButton();
            getContentPane().add(OKbtn);
            OKbtn.setText("OK");
            OKbtn.setBounds(102, 217, 59, 23);
            OKbtn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                String passText = new String(Passwordfld.getPassword());

                String cmd = evt.getActionCommand();

                if (OKbtn.getActionCommand().equals(cmd)) { // Process the password.
                    if (Usernametxt.getText().equals("Admin")&& (isPasswordCorrect(passText.toCharArray()))) {

                        System.out.println("Password Accepted");

                        ItemsPage ItemsPage = new ItemsPage();
                        ItemsPage.setVisible(true);
                    } else {
                    System.out.println("Password Rejected: " + passText);

                    }

                    // Zero out the possible password, for security.
                    Arrays.fill(passText.toCharArray(), '0');

                    Passwordfld.selectAll();

                    /*
                     * else{ System.out.println("permition Rejected"); }
                     */

                    // else{}
                    /*
                     * if (Passwordfld = Password)= true) {
                     * System.out.println("permition granted");}
                     */
                }

            }
            });

            Cancelbtn = new JButton();
            getContentPane().add(Cancelbtn);
            Cancelbtn.setText("Exit");
            Cancelbtn.setBounds(198, 217, 61, 23);
            Cancelbtn.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {

                    //System.out.println("Cancelbtn.actionPerformed, event="+evt);
                    //TODO add your code for Cancelbtn.actionPerformed
                }
            });

            Welco = new JLabel();
            getContentPane().add(Welco);
            Welco.setText("Welcome to Jstore please log in using your staff acount");
            Welco.setBounds(51, 19, 291, 16);





            pack();
            setSize(400, 300);
        } catch (Exception e) {
            //add your error handling code here
            e.printStackTrace();
        }

    }
    //static class AL implements ActionListener{
    //JPasswordField input = new JPasswordField();

    /*  char [] passy = input.getPassword();
        String p = new String (passy);{
        if (p.equals (Password)){
            JOptionPane.showMessageDialog(null, "Correct"); }
            else
            {       JOptionPane.showMessageDialog(null, "InCorrect");

        }
        */


}

1 个答案:

答案 0 :(得分:0)

使用System.exit()关闭整个程序。 Frame.dispose()会破坏你的JFrame,最后,Frame.setVisable(false)将隐藏你的框架,但不会销毁它。

所以,要按字面意思回答你的问题,那就是Frame.dispose() / Frame.setVisable(false) / System.exit()