Можно ли получить экземпляр вызывающего класса в JFrame в Java? - PullRequest
2 голосов
/ 08 ноября 2019

В приложении Java Swing у меня есть JFrame, который вызывает другие JFrame. В частности, я имею дело с JFrame для выбора цветов пользовательского интерфейса.

Каждая кнопка цвета создает новый JFrame, в котором есть только кнопки JColorChooser и OK / Cancel.

После выбора цвета мне нужновернуть выбранный цвет обратно в исходный JFrame, который вызвал JFrame с JColorChooser.

До сих пор я делал это, явно назначая атрибут в JFrame, который содержит JColorChooser.

public class PropertiesColor extends javax.swing.JFrame {

    public MainWindow mainWindow;

    public PropertiesColor(MainWindow mw) {
        initComponents();
        mainWindow = mw;
    }

    private void initComponents() {
        jColorChooser = new javax.swing.JColorChooser();
        ...
    }

Объект MainWindow имеет атрибуты / методы для использования выбранного цвета из JColorChooser, поэтому, как только вы закрываете JFrame с помощью JColorChooser, вы просто делаете:

 mainWindow.setBackgroundColor(jColorChooser.getColor());

У меня есть вопрос об этом шаблоне: возможно лиопределить mainWindow без явного присвоения его при создании PropertiesColor? Вид сортировки .getInvokingJFrame метод

...