я хочу, чтобы окно закрывалось, когда данные были введены

Я хочу, чтобы окно закрывалось, как только ввод был введен и нажал кнопку добавления. Также я хотел бы, чтобы появилось сообщение, уведомляющее пользователя о том, что введенные данные были сохранены. на данный момент этот код связан с объектом базы данных, где он будет хранить ввод.

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); 

}


person Sirnur    schedule 18.03.2012    source источник
comment
Я хочу новый компьютер ... в чем вопрос? Переполнение стека здесь не для того, чтобы исправить ваш код за вас   -  person dann.dev    schedule 19.03.2012
comment
И здесь не для того, чтобы писать ваш код для вас. ;-)   -  person Hovercraft Full Of Eels    schedule 19.03.2012
comment
@HovercraftFullOfEels, это смущает ... вы даже можете сказать, что переполнение стека на самом деле здесь, чтобы `` исправить '' ваш код ...   -  person dann.dev    schedule 19.03.2012
comment
@dann: да, я могу это понять, потому что я совершал одну и ту же ошибку миллион раз. Ой, похоже, Симур начинает кричать. Это заставит меня захотеть ему помочь.   -  person Hovercraft Full Of Eels    schedule 19.03.2012
comment
я хотел бы поблагодарить вас всех за вашу помощь, мне удалось исправить мою проблему с моим приложением еще раз большое спасибо   -  person Sirnur    schedule 20.03.2012


Ответы (2)


Используйте JOptionPane, вам нужно посмотреть JOptionPane#showXxxDialog, который может быть возвращен желаемым обходным путем.

person mKorbel    schedule 18.03.2012
comment
Большое спасибо, я получил его для работы с JOptionPane, моя программа выглядит более профессионально. - person Sirnur; 20.03.2012

Вы можете добавить код в свой метод выполняемого действия. Взгляните на API для JFrame. для получения списка методов, но вы, вероятно, захотите вызвать this.dispose();.

Также есть некоторые существующие ответы на переполнение стека, такие как this.

РЕДАКТИРОВАТЬ: имейте в виду, что это также избавит от класса, который вы используете; поэтому, если вам все еще нужна логика занятости, вам нужен метод, который вместо этого скрывает JFrame. Я уверен, что вы сможете найти это сами, но было бы лучше отделить графический интерфейс от бизнес-логики.

person dann.dev    schedule 18.03.2012
comment
dam.dev большое спасибо Я просмотрел API, это очень важно, содержит все классы с пояснениями. большое спасибо - person Sirnur; 20.03.2012
comment
Не беспокойтесь, постарайтесь точно сказать, с какой частью у вас возникнут проблемы в следующий раз, тогда люди смогут быстрее предложить лучшую помощь - person dann.dev; 20.03.2012