Передача массива из JDialog в главный JFrame - Java
Формулировка задачи:
У меня есть главний JFrame, из которого я вызываю JDialog. В нем я ввожу данные в 3 jTextField. Также в JDialog есть JBurron, по клику на который я должен передать считанные данные в главный JFrame. Подскажите пожалуйста как это реализовать. Я работаю в NetBeans.
Решение задачи: «Передача массива из JDialog в главный JFrame»
textual
Листинг программы
import java.awt.Dialog;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class MainFrame extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JButton callModalButton;
private String textFieldOneText;
MainFrame() {
setSize(200, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
callModalButton = new JButton("Click");
add(callModalButton);
callModalButton.addActionListener(this);
setVisible(true);
}
public static void main(String[] args) {
new MainFrame();
}
@Override
public void actionPerformed(ActionEvent evnt) {
Object source = evnt.getSource();
if (source == callModalButton) {
new ModalFrame(this);
System.out
.println("Переменная после присвоения ей значения в диалоге: "
+ textFieldOneText);
}
}
public void setTextFieldOneText(String textFieldOneText) {
this.textFieldOneText = textFieldOneText;
}
private class ModalFrame extends JDialog implements ActionListener {
private static final long serialVersionUID = 1L;
private MainFrame main;
private JTextField textFieldOne;
private JButton submitButton;
ModalFrame(MainFrame main) {
super(main, Dialog.ModalityType.DOCUMENT_MODAL);
this.main = main;
setSize(200, 200);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLocationRelativeTo(main);
textFieldOne = new JTextField(10);
submitButton = new JButton("Submit");
setLayout(new GridLayout(2, 1));
add(textFieldOne);
add(submitButton);
submitButton.addActionListener(this);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent evnt) {
Object source = evnt.getSource();
if (source == submitButton) {
main.setTextFieldOneText(textFieldOne.getText());
dispose();
}
}
}
}