1

ですから、個人的にはGUIに耐えられないので、JavaでGUIを使用することは常に避けてきました。しかし、私はGUIを使用する必要があるプロジェクトを開始しました。当然のことながら、問題が発生しています。このコードが少しあります。

public class DefaultWindow extends Window
{
    private DefaultWindow(Frame owner)
    {
        super(owner);
        contained = owner;
    }
    public DefaultWindow()
    {
        this(new Frame(""));
        contained.setBackground(Color.black);
        contained.setLocation(0, 0);
        contained.setSize(1280,720);
        Button comp = new Button("Hello");
        comp.setLocation(0, 0);
        comp.setSize(10, 10);
        add(comp);
        pack();
        contained.setVisible(true);
    }
}

..そして、背景が黒の1280x720ウィンドウを作成し(これは良いことです)、画面の左上隅にフローティングボタンも作成します。ボタンをウィンドウに配置するにはどうすればよいですか。

4

3 に答える 3

4

Windowのサブクラスのインスタンスを作成し、そのコンストラクターでFrame(それ自体がWindow)を作成します。この空のフレームを表示し、作成しているウィンドウにボタンを追加します。つまり、最終的には2つのウィンドウがあります。

あなたが本当に望んでいるのは、たった1つのフレームを作成することだと思います。クラスはWindowを拡張するべきではなく、これはすべてコンストラクターで実行するべきではありません。さらに、AWTは一種の時代遅れです。Swingを使用する必要があります。Oracleには、Swingに関する優れたチュートリアルがあります。BTWでは、レイアウトマネージャーの使用方法についても説明しています(これを行う必要があります)。このチュートリアルを読んでください

于 2013-01-01T21:12:53.737 に答える
2

個人的には、(個人的には) AWT よりも Swing ベースのコンポーネントを使用しますが、他の何よりも、より多くのコンポーネントとサポートがあります。

containedは無効な参照です。必要ありません。2 つのウィンドウを作成し、ボタンのないウィンドウのみを表示します。フレームへの参照を削除し、代わりにウィンドウに依存します

public DefaultWindow()
{
    setBackground(Color.black);
    setLocation(0, 0);
    setSize(1280,720);
    Button comp = new Button("Hello");
    setLocation(0, 0);
    comp.setSize(10, 10);
    add(comp);
    pack();
    setVisible(true);
}

ウィンドウを任意のサイズに設定することは避けます。すべての画面が同じというわけではありません。

また、レイアウト マネージャーにも違反します。つまり、ボタンに指定した設定が上書きされる可能性があります。

時間をかけてJFC/Swing を使用した GUI の作成を読みます。

于 2013-01-01T21:13:42.730 に答える
0

Q: 個人的には GUI に耐えられないので、Java で GUI を使用することは常に避けてきました。

A: ねえ: 私は地球上で一人だと思っていました :) 私のモットーは常に「GUI は単純なタスクをより簡単にし、難しいタスクは完全に不可能にする」です ;)

あなたの質問に関しては、答えは次のとおりです。

1) Swing は「シック クライアント」 (つまり、Java デスクトップ アプリケーション) に適しています。

2)JSPは「Webアプリケーション」(つまり、クライアント/サーバーWebアプリケーション)に適しています

3) GUI 全体に AWT を使用することさえ考えないでください。これは、Java の歴史のかなり早い段階 (具体的には Java 1.2) で廃止されました。

ここにいくつかの良いチュートリアルがあります:

PS: GUI について私が言ったことにもかかわらず...そして IDE は非常に役に立ちます。

個人的にはエクリプスを使っています。いくつかの理由で:

  • Eclipse (ほとんどの IDE と同様) は、コマンドライン、Swing、JSP、および Java EE アプリに使用できます。

  • Eclipse は (Netbeans や IntelliJ とは異なり) Android アプリにも同様に役立ちます

  • Eclipse には、(IBM や Google などのさまざまな企業からの) サード パーティ プラグインの非常に広範なエコシステムがあります。

私見では...

于 2013-01-01T21:17:48.357 に答える