为了节省RAM,我想在需要时创建类,然后再重复使用。
我的课是这样的:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Engine implements ActionListener {
JFileChooser fileChooser = new JFileChooser();
Boolean addWindow = false;
Engine(){}
//@ void actionPerformed()
public void actionPerformed(ActionEvent evt){
if ( evt.getActionCommand().equals("add") ) {
if ( addWindow = false ) {
Add Add = new Add();
Add.setVisible(true);
}
else Add.setVisible(true);
}
}
}
(只是项目的一个类别)
我认为这只是一个愚蠢的错误,但我无法理解。
但如果我尝试编译就说:
Engine.java:21:错误:非静态方法setVisible(boolean)不能 从静态上下文引用:else Add.setVisible(true); (标记 在Add和setVisible()之间。)
我不想每次都重新创建Add类。如果已经创建,只需重复使用。
答案 0 :(得分:3)
Add add = new Add();
if ( addWindow == false ) { //Thanks to @TofuBeer's comment. I didn't notice this at all.
add.setVisible(true);
}
else
add.setVisible(true);
由于您正在使用Add
(这是类本身的名称),因此它试图静态地调用该方法,这会导致错误,因为它不是您类中的静态方法{ {1}}。
使用您创建的实例来调用方法,并确保实例名称不是类名(类名称为大写Add
)。
添加 - 班级名称
添加 - 实例名称(如果您在此处也提供A
,则会考虑类名而不是实例名称。)