gpt4 book ai didi

java - 无法在 main() 中调用扩展 JFrame 的 Frame 类中存在的方法

转载 作者:行者123 更新时间:2023-11-30 06:13:53 25 4
gpt4 key购买 nike

下面给出的代码给出了错误(无法从类型 Window 对非静态方法 setVisible(boolean) 进行静态引用):

import javax.swing.JFrame;

public class Frame extends JFrame{
public static void main(String[] args) {
setVisible(true);
}
}

虽然这个编译很好:

import javax.swing.JFrame;

public class Frame extends JFrame{
Frame() {
setVisible(true);
}
}

当我说 Frame extends JFrame 时,这意味着 Frame 继承了 JFrame 的所有方法(粗略地说),包括 setVisible(boolean) 。那么为什么我不能在 main() 中调用 setVisible(true) 而我可以在其他方法中调用呢?

最佳答案

线索在异常消息中。

setVisible 方法是JFrame 上的实例方法

public static void main 中,您处于静态上下文中,因此没有要调用 setVisibleFrame 实例。

你可以这样做:

public static void main(String[] args) {
new Frame().setVisible(true);
}

因为那时你有一个实例

https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html可能有帮助

关于java - 无法在 main() 中调用扩展 JFrame 的 Frame 类中存在的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31279669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com