Я не знаю, смогу ли я объяснить свой метод классным способом ...
Допустим, мне нужен productPrice и сумма от JDialog, который собирается получить эту информацию от пользователя, мне нужно вызвать ее из JFrame.
объявляет productPrice и ammount как открытые нестатические глобальные переменные внутри JDialog.
public float productPrice;
public int amount;
* это входит в глобальную область видимости диалогового окна.
добавьте эти строки в конструктор JDialog, чтобы обеспечить модальность
super((java.awt.Frame) null, true);
setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL);
* это входит в конструктор класса диалога
допустим, имя класса вашего JDialog 'MyJDialog' при вызове делает что-то подобное
MyJDialog question = new MyJDialog();
MyJDialog.setVisible(true);
// Application thread will stop here until MyJDialog calls dispose();
// this is an effect of modality
//
// When question calls for dispose(), it will leave the screen,
// but its global values will still be accessible.
float myTotalCostVar = question.productPrice * question.ammount;
// this is acceptable.
// You can also create public getter function inside the JDialog class,
// its safer and its a good practice.
* это относится к любой функции в вашем JFrame и вызывает JDialog для получения информации.