我是 Java 新手,我一直尝试将此代码作为 Java 应用程序而不是 Java 小程序运行,但它不起作用(使用 Eclipse IDE)。当我单击“运行”时,它没有提供将其作为 Java 应用程序运行的选项。我该如何解决这个问题?
这是我的代码:
import java.awt.Color;
import acm.graphics.GOval;
import acm.graphics.GPoint;
import acm.graphics.GRect;
import acm.program.*;
import acm.graphics.*;
public class Coordinates extends GraphicsProgram {
public void run() {
GOval myOval = new GOval(-8, -8, 16, 16);
myOval.setColor(Color.RED);
myOval.setFilled(true);
add(myOval);
}
}
以下是当我单击“运行”时提供给我的选项:
谢谢你。
GraphicsProgram
扩展了 Applet
/JApplet
。
这是个坏消息,因为运行小程序和 Web 启动应用程序所需的 Java 插件技术已在 Java 9 中被弃用并从 Java API 中删除。
要按照示例中的建议进行自定义绘制,我将扩展基于 Swing 的
JPanel
并更改绘制方法,然后将其显示在 JFrame
中。
任何基于 ACM 的东西都不再起作用。
这只是猜测工作,因为我们无法访问
acm.*
并且小程序有其定义的生命周期,但目的是创建一个 JFrame
并向其中添加 Coordinates
组件
public class Test {
public static void main(String[] args) {
new Test();
}
public Test() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame();
Coordinates coordinates = new Coordinates();
coordinates.init();
frame.add(coordinates);
coordinates.start();
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class Coordinates extends GraphicsProgram {
public void run() {
GOval myOval = new GOval(-8, -8, 16, 16);
myOval.setColor(Color.RED);
myOval.setFilled(true);
add(myOval);
}
}
}
你需要一个 main 方法,哟。
public static void main(String[] args){}
尝试以下方法
public static void main(String[] args) {
try {
SwingUtilities.invokeAndWait(new Coordinates());
} catch (Exception e) {
e.printStackTrace();
}
}
您可以尝试在 Applet Runner for Eclipse 插件中运行它。它是一个免费插件,可在 IDE 中运行小程序。
完全公开,我是该插件的开发者。