2016-11-14 3 views
-1

Я пытаюсь сделать своего рода телефонную книгу, и мои навыки в графическом интерфейсе Java выглядят ржавыми, поскольку я не делал их один год. Итак, давайте предположим, что у меня есть одна кнопка в моем окне. Когда я нажимаю на него, я хочу, чтобы он появился с диалоговым окном с тремя разделами для ввода текста (имя, фамилия и номер телефона), а затем, когда пользователь нажмет кнопку «ОК» внизу, он добавит их в список имен и именных номеров. Какой код мне нужно, чтобы кнопка выполнила это действие? Я уже знаю, как сделать кнопку, поэтому я в основном задаюсь вопросом о действии, которое она выполняет, и о том, как сделать нужное диалоговое окно.Кнопка GUI GUI, диалоговое окно и ввод

ответ

0

Хорошо, так что ваша кнопка называется button1. Вам нужно будет добавить ActionListner к этой кнопке и ActionPerformed (который будет инкапсулировать то, что происходит при нажатии кнопки.) Когда кнопка нажата, вы можете создать новую панель, добавляющую текстовые поля на панели. Затем вы можете добавить еще одну кнопку для продолжения, в результате чего его дуэт ActionListner/ActionPerfromed сохранит строку, введенную в текстовое поле, в определенную строку. Пример кода ниже:

button1.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent a) { 
     JPanel panel1 = new JPanel(); 
     JTextField textbox = new JTextField(50); 
     JTextField textbox1 = new JTextField(50); 
     JTextField textbox3 = new JTextField(50); 

     label.setText("Please enter Something below on the textbox: "); 
     panel1.add(label); 
     panel1.add(textbox); 
     panel1.add(textbox1); 
     panel1.add(textbox2); 

     JButton button3 = new JButton(); 
     button3.setText("CLICK TO PROCEED"); 
     panel1.add(button3, BorderLayout.NORTH); 

     frame.setContentPane(panel1); 
     frame.invalidate(); 
     frame.validate(); 

     button3.addActionListener(new ActionListener(){ 
     public void actionPerformed(ActionEvent ae){ 
      String s1 = textbox.getText(); 
      String s2 = textbox1.getText(); 
      String s3 = textbox2.getText();}} 

Надеюсь, это поможет. Однако учтите, что переменные, определенные в actionPerformed, являются локальными. s1, s2, s3 не могут использоваться снаружи. Лучше создавать частные статические переменные вне метода ActionListner/ActionPerformed.

+0

Итак, вы говорите, что переменные, помещенные в диалоговом окне, не будут отправлены обратно в основной метод? – user276019

1

и как сделать нужное диалоговое окно.

Вы сделать окно JDialog так же, как сделать окно JFrame, somethink как:

JPanel panel = new JPanel(); 
panel.add(someComponent); 
panel.add(anotherComponent); 
JDialog dialgo = new JDialog(); 
dialog.add(panel); 
dialog.pack(); 
dialog.setVisible(true); 

Обычно этот код будет содержится в отдельном классе, и вы просто создать экземпляр класса в ваш ActionListener.

+0

Спасибо за это, это то, что я искал, хотя теперь мне нужно выяснить, как заставить его вернуть значения в текстовые поля. Не должно быть слишком сложно. – user276019

Смежные вопросы