如何关闭Java应用程序

时间:2015-06-07 16:24:57

标签: java swing

我写了这段代码,我想知道你们是否可以帮我解决如何在text1中输入名称“Bob / BOB / bob”时关闭我的应用程序。

public class Event extends JFrame {
    //create items

    private JTextField text1;
    private JTextField text2;
    private JTextField text3;
    private JPasswordField pass1;


    public Event(){
        super("The title");
        setLayout(new FlowLayout());
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



        text1 = new JTextField(10);
        add(text1); 
        text2 = new JTextField("enter text here");
        add(text2);
        text3 = new JTextField("uneditbale", 15);
        text3.setEditable(false);
        add(text3); 
        pass1 = new JPasswordField("enter your password", 10);
        add(pass1);

        //create object
        thehandler handler = new thehandler();
        text1.addActionListener(handler);
        text2.addActionListener(handler);
        text3.addActionListener(handler);
        pass1.addActionListener(handler);

        //constructor Event ends
    }

    private class thehandler implements ActionListener{

        public void actionPerformed(ActionEvent event){

            String string = "";

            if(event.getSource()==text1)
                string=String.format("field 1: %s",event.getActionCommand());
            else if(event.getSource()==text2)
                string=String.format("field 2: %s",event.getActionCommand());
            else if(event.getSource()==text3)
                string=String.format("field 3: %s",event.getActionCommand());
            else if(event.getSource()==pass1)
                string=String.format("Password is : %s",event.getActionCommand());

            JOptionPane.showMessageDialog(null, string);
        }

    }
    public static void main(String[] args) {
        Event ev = new Event();
        ev.setSize(350, 100);
        ev.setVisible(true);

    }
}

4 个答案:

答案 0 :(得分:1)

使用此代码。我创建了一个文本字段,当它获得文本“Bob / BOB / bob”时,它退出Jframe。

public class Example extends JFrame {

Example() {

    JTextField textfield1 = new JTextField(10); 
    textfield1.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {

            if(textfield1.getText().equals("Bob/BOB/bob"))
                    System.exit(0);

        }
    });

    add(textfield1);
 }
}

答案 1 :(得分:0)

如果要终止整个过程,可以使用System.exit(0)dispose()方法只能用于关闭窗口。

(说实话,我被称为JFrame的{​​{1}}感到非常困惑,不幸的是,这是一个糟糕的名字。)

答案 2 :(得分:0)

有关如何执行JTextField和字符串相等性检查的过程的说明,请参阅https://stackoverflow.com/a/7513639/4172242

要终止应用程序,System.exit(0)应该适用于您的目的。

答案 3 :(得分:0)

我理解你的问题不同......

(...) enter the name "Bob/BOB/bob"

如果您想让代码不区分大小写,请尝试使用string.toLowerCase()string.toUpperCase()

例如:

if("bob".equals(inputString.toLowerCase()) {
    // app close logic
    System.exit(0);
}