【发布时间】:2023-04-02 21:44:01
【问题描述】:
我正在做一个项目,但我遇到了一些我还不完全理解的东西。
每次我喜欢从另一个类调用方法,或者使用 jform 中的变量时,我的 netbeans 都会说我需要将其设为“静态”。现在我明白了静态的含义,并且我已经从我使用方法的类中创建了对象,但即便如此,netbeans 说我需要先将对象设为静态,然后才能在 MAIN() 方法中使用它。甚至像组合框这样的 jform 变量。
有人可以解释一下吗?
提前致谢!
编辑:
这是我项目中的一些代码。它非常小,但应该可以澄清问题:
主类:
public class SpeeloTheek {
/**
* @param args the command line arguments
*/
public static Controller MainController = new Controller();
public static SummaryScreen MainSummaryScreen = new SummaryScreen();
public static void main(String[] args) {
// TODO code application logic here
MainSummaryScreen.setVisible(true);
MainController.SetFullScreen(MainSummaryScreen);
MainController.ComboBoxItemSelected(SummaryScreen.choiceBox);
}
控制器类:
package speelotheek;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
public class Controller {
//Method to make JFrame fullscreen//
public void SetFullScreen(JFrame frameToUse) {
frameToUse.setExtendedState(JFrame.MAXIMIZED_BOTH);
}
public void ComboBoxItemSelected(final JComboBox comboBoxToUse) {
comboBoxToUse.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
WhichSummary(comboBoxToUse);
}
}
});
}
public void WhichSummary(JComboBox comboBoxToUse) {
System.out.println(comboBoxToUse.getSelectedItem());
}
}
编辑2:
谢谢大家 :) 我找到了问题。我在 main 方法中实例化了该类,而不是在 main 方法之上,它起作用了:)
【问题讨论】:
-
你是从类的main方法做的吗?尝试从您的 main 方法调用非静态函数?
-
从构造函数而不是
main工作 -
请贴出出现错误的代码,以及完整的错误信息
标签: java class object netbeans static