我照着2019模板的模块敲的,怎么就是错的?百度上也寻找了方法,还是不能解决 急,不知道怎么改
1条回答 默认 最新
- 专家-司宇[在线] 2024-07-28 18:41关注
引自免费微信小程序:皆我百晓生
根据您提供的代码和错误信息,问题出在尝试从一个静态方法(main方法)中调用一个非静态方法(LaunchFrame)。在Java中,静态方法不能直接调用非静态方法,因为非静态方法是属于对象的实例的,而静态方法是属于类的,不依赖于任何对象实例。因此,您需要创建一个MyGameFrame的实例,并通过该实例来调用LaunchFrame方法。这是您的代码的修正版本:
图3和图4的修正版本如下:
package Mygamepackage; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class MyGameFrame extends Frame { //初始化窗口 public void LaunchFrame(){ this.setTitle("黄豪大战"); setVisible(true); setSize(700, 700); // 注意这里应该是 setSize 而非 setsize,并且不需要指定宽度和高度为两个单独的参数 setLocation(600, 600); this.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e){ System.exit(0); // 注意这里应该是 windowClosing 而非 windowCLosing,并且状态码应该是整数而不是字符串 "status" } }); } public static void main(String[] args) { MyGameFrame frame = new MyGameFrame(); // 创建MyGameFrame的实例 frame.LaunchFrame(); // 通过该实例调用LaunchFrame方法 } }
关于您提到的另一个问题:“Variable 'Frame' is never used”(变量'Frame'从未使用),这是因为您在main方法中创建了一个名为Frame的MyGameFrame实例对象,但并没有对它进行任何操作或引用。由于这个变量没有在后续代码中被使用,编译器给出了这个警告。如果您需要这个对象进行其他操作,请确保在创建后使用它。如果这是一个误操作,您可以直接删除这行代码。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
- ¥15 神经网络模型一直不能上GPU
- ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
- ¥20 wpf datagrid单元闪烁效果失灵
- ¥15 券商软件上市公司信息获取问题
- ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
- ¥15 Android studio AVD启动不了
- ¥15 陆空双模式无人机怎么做
- ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
- ¥15 C#中的编译平台的区别影响