运行没有main方法的Java程序?

运行没有main方法的Java程序?,java,applet,awt,frame,Java,Applet,Awt,Frame,我试图启动一个框架GUI(桌面窗口),而不是从Applet对象创建它 我有一个编译错误 我的问题是,创建桌面gui框架的唯一方法是使用main方法,比如桌面应用程序 或者有没有一种方法可以创建一个框架,比如用init(),start(),paint()等方法创建一个小程序 我的代码: import java.awt.*; import java.applet.*; import java.awt.event.*; class PilotinoGui extends Frame { P

我试图启动一个框架GUI(桌面窗口),而不是从
Applet
对象创建它

我有一个编译错误

我的问题是,创建桌面gui框架的唯一方法是使用main方法,比如桌面应用程序

或者有没有一种方法可以创建一个框架,比如用
init()
start()
paint()
等方法创建一个小程序

我的代码:

import java.awt.*;
import java.applet.*;
import java.awt.event.*;


class PilotinoGui extends Frame {
    PilotinoGui(String title) {
        super(title);
    }
    public void paint(Graphics g) {
        g.drawString("This is stringggg", 10, 40);
    }

}
错误消息:

Error: Main method not found in class
zetariemann.com.pilotino.PilotinoGui, please define the main method as:
       public static void main(String[] args)

正如其他答案所指出的,您需要有一个主要方法:

public static void main(String []args)
{
    PilotinoGui pg = new PilontinoGui();
    pg.setVisible(true);
}
我建议使用JFrame而不是Frame

import javax.swing.JFrame;
java.awt.Frame的扩展版本,增加了对 JFC/Swing组件体系结构。你可以发现任务导向 关于在Java教程中使用JFrame的文档,请参见 如何制作框架


此处的文档:

正如其他答案中指出的,您需要有一个主要方法:

public static void main(String []args)
{
    PilotinoGui pg = new PilontinoGui();
    pg.setVisible(true);
}
我建议使用JFrame而不是Frame

import javax.swing.JFrame;
java.awt.Frame的扩展版本,增加了对 JFC/Swing组件体系结构。你可以发现任务导向 关于在Java教程中使用JFrame的文档,请参见 如何制作框架

此处的文档:

当您编译运行代码时,编译器会搜索main方法,这意味着没有main方法,由于对象的创建,您无法进入运行时,可能您的代码会在编译时编译,但这是另一回事

因此,如果没有main方法,就不可能运行应用程序。

当您编译运行代码时,编译器会搜索main方法,这意味着没有main方法,由于对象的创建,您无法进入运行时,您的代码可能会在编译时编译,但这是另外一回事

因此,如果没有main方法,就不可能运行应用程序。

Add

public static void main(String[] args) {
 new PilotinoGui ().setVisible(true);
}
作为类中的主要方法

添加

public static void main(String[] args) {
 new PilotinoGui ().setVisible(true);
}

作为课堂上的主要方法

1)为什么AWT而不是Swing?关于放弃使用AWT组件的许多好理由,请参见上的回答。如果需要支持较旧的基于AWT的API,请参阅。2) 绘制到
缓冲区图像
,将其显示在
JLabel
中。如果更改,请调用
label.repaint()
。如……所示。。。。3) 不要延伸框架或其他顶级容器。而是创建并使用一个实例。4) 要部署Java桌面应用程序,最好的选择通常是安装应用程序。使用。JWS在Windows、OSX和*nix上工作。1)为什么使用AWT而不是Swing?关于放弃使用AWT组件的许多好理由,请参见上的回答。如果需要支持较旧的基于AWT的API,请参阅。2) 绘制到
缓冲区图像
,将其显示在
JLabel
中。如果更改,请调用
label.repaint()
。如……所示。。。。3) 不要延伸框架或其他顶级容器。而是创建并使用一个实例。4) 要部署Java桌面应用程序,最好的选择通常是安装应用程序。使用。JWS在Windows、OS X和*nix上工作。我不想使用swing,对不起,我应该这么说。为什么你不想使用它?因为我正在培训如何使用AWT,无论他使用AWT还是swing,这不是OP的问题,这是另一个问题,他说可以在没有main方法的情况下运行应用程序。@anakata:我删除了否决票,也许下次再评论一下建议会更好:)我不想使用swing,对不起,我应该这么说为什么你不想使用它?因为我正在训练使用AWT,不管他使用AWT还是swing,这不是OP的问题,这是另一个问题,他说可以在没有主方法的情况下运行应用程序。@anakata:我删除了否决票,也许下次对建议进行评论更好:)好吧,但这不适用于小程序,它们没有主方法。Applet是一个例外吗?@Luther:是的,因为Applet不是一个应用程序,请阅读,Applet不同于独立的Java应用程序,它们不需要实现主方法。“编译代码时,编译器搜索主方法”ITYM“,运行代码时,运行时搜索主方法”。。主要原因是,JDK编译器不会发出警告。;)Azad,这是Java基于的OOP原则,也是关于编译器如何在编译和执行过程中维护代码的,但这不适用于小程序,它们没有主要方法。Applet是一个例外吗?@Luther:是的,因为Applet不是一个应用程序,请阅读,Applet不同于独立的Java应用程序,它们不需要实现主方法。“编译代码时,编译器搜索主方法”ITYM“,运行代码时,运行时搜索主方法”。。主要原因是,JDK编译器不会发出警告。;)Azad,这是Java基于的OOP原理,也是关于编译器如何在编译和执行期间维护代码的