2013-07-30 5 views
0

Applet 개체에서 프레임 GUI (데스크톱 창)를 만들지 않고 시작하려고했습니다.main 메소드없이 Java 프로그램을 실행 하시겠습니까?

컴파일 오류가 발생했습니다.

내 질문은 데스크톱 GUI 응용 프로그램과 같은 주요 방법으로 데스크톱 GUI 프레임을 만드는 유일한 방법은 무엇입니까?

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); 
    } 

} 

오류 메시지 :

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

내가 추천 할 것입니다 :

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

http://journals.ecs.soton.ac.uk/java/tutorial/getStarted/application/main.html – m0s

+0

1) 왜 AWT가 아니라 Swing인가? AWT 구성 요소를 사용하여 포기해야하는 여러 가지 이유 때문에 [AWT를 통한 스윙 엑스트라] (http://stackoverflow.com/a/6255978/418556)에서이 대답을 참조하십시오. 이전 AWT 기반 API를 지원해야하는 경우 [중량 및 중량 구성 요소 혼합] (http://www.oracle.com/technetwork/articles/java/mixing-components-433992.html)을 참조하십시오. 2) BufferedImage에 페인트하고, JLabel로 표시합니다. 라벨이 변경되면'label.repaint()'를 호출하십시오. E.G. [이 답변] (http://stackoverflow.com/a/10628553/418556)에서 볼 수 있습니다. .. –

+0

.. 3) 프레임이나 기타 최상위 컨테이너를 확장하지 마십시오. 대신 하나의 인스턴스를 만들고 사용하십시오. 4) Java 데스크톱 앱을 배포하는 경우 일반적으로 앱을 설치하는 것이 가장 좋습니다. [Java Web Start] (http://stackoverflow.com/tags/java-web-start/info)를 사용하십시오. JWS는 Windows, OS X & * nix에서 작동합니다. –

답변

4

컴파일 실행이 때문에의 창조의 런타임으로 갈 수 없어 주요 방법없이 의미 코드, 주요 방법에 대한 컴파일러 검색 수, 객체를 만들면 시간을 컴파일하는 동안 코드가 컴파일되지만 그 밖의 것이 있습니다.

따라서 기본 방법없이 응용 프로그램을 실행할 수 없습니다.

+0

글쎄, 애플릿에는 적용되지 않지만 주된 방법은 없다. 애플릿은 예외입니까? – Luther

+3

@ 루터 : 예, 애플릿이 응용 프로그램이 아니기 때문에 [** 애플릿의 수명주기 **] (http://docs.oracle.com/javase/tutorial/deployment/applet/lifeCycle.html)를 읽으십시오. [파일에서로드 된 다음 초기화, 시작, 작동, 중지 및 마지막으로 파괴되는 동안 라이프 사이클을 따라 진행됩니다.] (http://stackoverflow.com/questions/8610475/java-applet-runs-without-a -main-method) – Azad

+1

** 애플릿은 main 메소드를 구현할 필요가 없다는 점에서 독립 실행 형 Java 응용 프로그램과 다릅니다. ** http://stackoverflow.com/questions/8610475/java-applet-runs-without- a-main-method – jsedano

0

으로, 당신은 주요 방법이 필요합니다 다른 답변에서 지적 Frame 대신 JFrame을 사용합니다.

import javax.swing.JFrame; 

JFC/Swing 컴퍼넌트 아키텍쳐에 대한 지원을 추가하는 java.awt.Frame 확장 버전입니다. JTrame 사용에 관한 작업 지향적 인 설명서는 The Java Tutorial의 프레임 만들기 방법 섹션에서 찾을 수 있습니다. 여기

문서 : http://docs.oracle.com/javase/1.4.2/docs/api/javax/swing/JFrame.html

+0

스윙을 사용하고 싶지 않습니다. 죄송합니다.이 말을해야합니다. – Luther

+0

왜 사용하지 않으시겠습니까? – jsedano

+0

AWT 또는 Swing을 사용하는 경우 AWT – Luther

1

클래스의 주요 방법으로

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

추가

관련 문제