Java:如何在JFrame中使用add(ClassName)时访问类变量

问题描述 投票:0回答:1

我需要访问screenWidth类中的两个变量(screenHeightSurface)。这就是我目前实现的目标:

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);
    });
}
}
java class variables
1个回答
1
投票

是的,不是。

是:

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

没有:

看是的。

您的原始解决方案是干净,简短和正确的。

© www.soinside.com 2019 - 2024. All rights reserved.