2016-06-16 5 views
-5

스윙 구성 요소를 사용하여 Java에서 프레임 & 패널을 만들려고하지만 "잘못된 선언, 반환 유형 필요"라는 myframe()에서 오류가 발생합니다. 선생님이 교실에서 그것을 실행하면 성공적으로 실행되었지만 이제는 오류가 발생합니다.JFrame을 생성하는 중 오류가 발생했습니다.

import javax.swing.*; 

class myFrame extends JFrame { 

    private mypanel p1; 

    myframe() /*here I'm getting error that "invalid decleration, return type required */ { 
     this.setSize(400, 500); 
     this.setTitle("My First GUI"); 
     setDeafultCloseOpeartion(JFrame.EXIT_ON_CLOSE); 
     this.add(p1); 
     setVisible(true); 
    } 
} 

class mypanel extends Jpanel { 

    private JButton b1; 

    mypanel() { 
     b1 = new JButton("Click me"); 
     this.add(b1); 
    } 
} 

class mygui { 

    public static void main(String args[]) { 
     myframe f = new myframe(); 
     myframe f1 = new myframe(); 
    } 
} 
+3

MyFrame이란은 MyFrame을 –

+1

같은 잘못되지이었다 ... 그리고 클래스 이름은 대문자 문자로 시작해야합니다. 즉, 'MyFrame'이어야합니다. – camickr

+1

Jpanel은 JPanel – Ingram

답변

3

당신은

class myFrame extends JFrame { 

    //The name of the constructor should be the same as the class name 
    myFrame() { 
     //... 
    } 
} 

을 MyFrame을하는 생성자 이름을 변경해야합니다 그리고 당신은 더 나은이 같은 대문자 문자로 클래스 이름을 시작 했죠 :

class MyFrame extends JFrame { 

    MyFrame() { 
     //... 
    } 
} 
+0

생성자 이름을 변경했습니다. 이제는 sam이 클래스 이름처럼 변경되었습니다. 해당 컴파일하지만 런타임 오류를주는. thread 「main」예외 : java.awt.Container.addImpl (알 수없는 소스) at java.awt.Container.add (알 수없는 소스) at javax.swing.JFrame.addImpl (알 수없는 소스) at java.awt.Container.add (알 수없는 출처) at myFrame. (MyGui.java:10) at MyGui.main (MyGui.java:27) –

+0

"개인 MyPanel p1;"을 "private MyPanel p1 = new MyPanel();"으로 변경해야합니다. 새로운 키워드 별 MyPanel. – DNX

3

당신은 만들어야 객체 귀하의 패널의 mypanel에서 대신 해당 객체를 추가하십시오. private mypanel p1;

import javax.swing.*; 

class myFrame extends JFrame { 

    // private mypanel p1; 

    myFrame() /*here I'm getting error that "invalid decleration, return type required */ { 
     this.setSize(400, 500); 
     this.setTitle("My First GUI"); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     mypanel p=new mypanel(); 
     this.add(p); 
     setVisible(true); 
    } 
} 

class mypanel extends JPanel { 

    private JButton b1; 

    mypanel() { 
     b1 = new JButton("Click me"); 
     this.add(b1); 
    } 
} 

class mygui { 

    public static void main(String args[]) { 
     myFrame f = new myFrame(); 
     myFrame f1 = new myFrame(); 
    } 
} 
2

MyFrame을() -> 생성자의 이름은

관련 문제