Передача массива из 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();
            }
        }
 
    }
}

Оцени полезность:

8   голосов , оценка 4 из 5