我写了这段代码,我想知道你们是否可以帮我解决如何在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);
}
}
答案 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);
}