0

Intellij アイデア プラットフォームを使用しています。

次のコードがあります。

package GUI.test;
import javax.swing.*;

public class Ramka extends JFrame{

    Ramka(){

        setVisible(true);
        setSize(100,100);

    }

    public void main (String[] args){
        new Ramka();
    }
}

このコードをコンパイルした後に JFrame が表示されることを期待していましたが、何も表示されませんでした。どのような問題が考えられますか?

また、メソッド「main」を実行する可能性がないことも認めなければなりません。InteligIdea は、Ramka.java のみをコンパイルすることを提案しています。IntelijIdeay のコンパイル後、そのコンパイルは正常に完了しましたが、それだけで何も起こりませんでした。以前の演習では、常にメソッド「main」を実行しました。

4

2 に答える 2

3

次のようにする必要があります。

public static void main (String[] args){
            java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Ramka().setVisible(true);
            }
        });
    }

static識別子mainがないことに加えて、フレームが正しいスレッドで実行されていることを確認する必要がありますスイングの「同時実行性」をチェックします

于 2013-08-13T21:54:48.733 に答える
2

実際にメインを実行すると、Ramka が表示されます。Main は、忘れた場所で常に宣言する必要があります。次のように変更した場合:public static void main(String[] args)static

public static void main (String[] args){

    new Ramka();
}

実行する必要があります。

于 2013-08-13T21:14:03.190 に答える