我需要访问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);
});
}
}
是的,不是。
是:
setSize(((Surface)getComponent(getComponentCount()-1)).screenWidth, ((Surface)getComponent(getComponentCount()-1)).screenHeight);
没有:
看是的。
您的原始解决方案是干净,简短和正确的。