gpt4 book ai didi

java - setVisible() 方法在静态方法中不起作用

转载 作者:行者123 更新时间:2023-12-02 05:51:50 24 4
gpt4 key购买 nike

我是 JFrame 的新手,我正在尝试做一个项目,如果按“注销”按钮,则可以完美执行以下代码,

public void actionlogout() {
lButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
try {
new Login();
setVisible(false);
dispose();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}

现在我的问题是,当我尝试从同一包的另一个文件调用相同的actionlogout时,它要求将方法的类型更改为静态,因此我已将方法更改为静态,但它在 setVisible(false)

Cannot make a static reference to the non-static method setVisible(boolean) from the type Window

我现在必须做什么?

最佳答案

这是因为 setVisible 是非静态方法,并且您尝试从静态代码/方法 block 引用它,

在java中,静态事物在类加载时首先加载,并且它不会了解非静态成员,因此当您尝试从静态 block 引用非静态事物时,它会给出此错误。

您必须从非静态代码块调用 setVisible,这是唯一的解决方案。

关于java - setVisible() 方法在静态方法中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23464970/

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