Java: как получить доступ к переменным класса при использовании add (ClassName) в JFrame - PullRequest
0 голосов
/ 04 сентября 2018

Мне нужно получить доступ к двум переменным (screenWidth и screenHeight), которые находятся в классе Surface. Вот как я сейчас достигаю этого:

public class WheelOfFortune extends JFrame {

public WheelOfFortune() {

    initUI();
}

private void initUI() {

    Surface newSurface = new Surface();

    add(newSurface);

    setSize(newSurface.screenWidth, newSurface.screenHeight);

    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args) {

    EventQueue.invokeLater(() -> {
        WheelOfFortune ex = new WheelOfFortune();
        ex.setVisible(true);
        ex.setResizable(false);
    });
}

}

Можно ли сделать то же самое с помощью этого кода? Как?

public class WheelOfFortune extends JFrame {

public WheelOfFortune() {

    initUI();
}

private void initUI() {

    add(new Surface());

    setTitle("The Wheel of Fortune");

    setSize(???.screenWidth, ???.screenHeight);

    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args) {

    EventQueue.invokeLater(() -> {
        WheelOfFortune ex = new WheelOfFortune();
        ex.setVisible(true);
        ex.setResizable(false);
    });
}
}

1 Ответ

0 голосов
/ 04 сентября 2018

Да и нет.

Да:

setSize(((Surface)getComponent(getComponentCount()-1)).screenWidth, ((Surface)getComponent(getComponentCount()-1)).screenHeight);
нет

№:

См. Да.

Ваше оригинальное решение чистое, короткое и правильное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...