我希望在输入数据时窗口关闭

时间:2012-03-18 22:04:50

标签: java swing actionlistener

我希望在输入输入并单击添加按钮后关闭窗口。 我还想要一条消息,通知用户输入数据已保存。此代码链接到将存储输入的数据库对象。

public class Add extends JFrame
             implements ActionListener {

/** {@link JTextField} where the user name is entered */
JTextField Inputusername = new JTextField(7);

/** {@link JTextField} where the user age is entered */
JTextField age = new JTextField(2);

/** {@link JTextField} where the user ID is entered */
JTextField inputuserid = new JTextField(4);

/** Add Client button */

JButton addnewclient = new JButton("Add Client");
/** male Jradiobutton */
JRadioButton male = new JRadioButton("Male");
/** female Jradiobutton */
JRadioButton female = new JRadioButton("Female");
/** label for the gender selection */
Label genders = new Label("please select gender of client");

/** call the database constructor*/

private Database db; 
public Add(Database db) 
    { this.db = db; 


    //allows the positioning 
    setLayout(new BorderLayout()); 

  //setting the size of the window
    setBounds(100, 100, 500, 200); 

 // the title of the window
    setTitle("add new Client"); 

    // dispose of the window when the close button is clicked
    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

 // declared new panel  
    JPanel top = new JPanel(); 
    top.add(new JLabel("Enter username :"));
    top.add(Inputusername);
    top.add(new JLabel("Enter age:"));
    top.add(age);
    top.add(new JLabel("Enter userid:"));
    top.add(inputuserid);
    add("North",top);
    // declared new panel 
    JPanel bottom = new JPanel(); 
 // add the veritable of JButton to the top panel
    bottom.add(addnewclient); 
 // add the bottom panel to the bottom of the screen
    add("South",bottom); 

    JPanel middle = new JPanel();
    ButtonGroup bg = new ButtonGroup();
    bg.add(male);
    bg.add(female);
    middle.add(male);
    middle.add(female);
    add("Center",middle);

 // do not allow user to set the size of the screen
    setResizable(false);
 // make the program  visible
    setVisible(true);
 // listen to the button
   addnewclient.addActionListener(this);   
}  

public void actionPerformed(ActionEvent e) {

    String selection = "female"; 

    if (this.male.isSelected()) 
    {
         selection = "male"; 
    }

    User u = new User(Inputusername.getText(),  selection , age.getText(), inputuserid.getText());
    db.addUser(u); 

}

2 个答案:

答案 0 :(得分:5)

使用JOptionPane,您必须查看JOptionPane#showXxxDialog,可以返回所需的解决方法

答案 1 :(得分:5)

您可以为执行的操作方法添加一些代码。有关方法列表,请查看JFrame的API,但您可能需要调用this.dispose();

还有一些关于堆栈溢出的现有答案,例如this

编辑:请注意,这将处理您正在使用的课程;因此,如果您仍然需要一些繁忙的逻辑,那么您需要一种隐藏JFrame的方法。我相信你自己可以找到这个,但是将GUI与业务逻辑分开是个更好的主意。