2017-04-01 4 views
0

私はJavaを初めて使用していますが、フレームを設定しようとしていますが、コードが正しくないか、ソフトウェアに問題があるためにコードが機能しません。私はEclipseを使用しています。フレームをJavaで設定する

は、これが私のコードです:

package Frame; 

import javax.swing.JFrame; 


public class App { 


class FrameApp extends JFrame { 

    public static void main(String[] args) { 

     JFrame frame = new JFrame("FirstFrame"); 
     frame.setTitle("MFF"); 
     frame.setSize(300, 700); 
     frame.setVisible(true); 

    } 
    } 

} 

それは

返すメソッドmainをstaticとして宣言することはできません。静的メソッドは、唯一の 問題は、あなたが内部クラスの主なメソッドを宣言していることである静的またはトップレベルのタイプ

+1

可能な複製(http://stackoverflow.com/questions/2671496/java-when-to-use-static-methods) –

+0

'main'機能を移動しようAppクラスに直接アクセスできます。 –

+0

行を取り除く: "クラスFrameApp extends JFrame {"と一番下の閉じ括弧。この例では、FrameAppクラスは必要ありません。あなたのフレームオブジェクトはJFrameです。 –

答えて

1

に宣言することができます。それはスローされた例外の意味です。 これはあなたのために働くでしょう。

package Frame; 

import javax.swing.JFrame; 

class FrameApp extends JFrame{ 
public FrameApp(String name){ 
super(name); 
} 
} 


public class App { 


public static void main(String[] args) { 

    FrameApp frame = new FrameApp("FirstFrame"); 
    frame.setTitle("MFF"); 
    frame.setSize(300, 700); 
    frame.setVisible(true); 

} 

} 

お楽しみください! :)

0

これはJFrameを拡張していないこのようにすることができます。

import javax.swing.JFrame; 

public class App{ 
    public App() { 
     JFrame frame = new JFrame("FirstFrame"); // This sets the title 
     frame.setTitle("MFF"); // Then you're resetting the title 
     frame.setSize(300, 700); 
     frame.setVisible(true); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
    public static void main(String[] args) { 
     new App(); 
    } 

} 

それとも、私は間違いなく非常にスイングを経験したが、他の上で1つのアプローチ を選ぶときはないよ

import javax.swing.JFrame; 

public class App extends JFrame{ 
    public App() { 
     // When you extend JFrame you're essentially creating a JFrame 
     // This gets into OOP (which you of course need to learn) 
     // Since you've extended the JFrame you can directly access its methods 
     // like setTitle, setSize.... 
     setTitle("MFF"); 
     setSize(300, 700); 
     setVisible(true); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
    public static void main(String[] args) { 
     new App(); 
    } 

} 

それを拡張することができます。私はフレームを延長しないことを選択します。 質問に答えるために、 という単純なクラスを作成したときに、別のクラスをAppクラス内に配置する理由はありません。その理由は上記の に変更された理由です。JFrame [Javaの:ときの静的メソッドを使用する]の

関連する問題