1

正直なところ、タイトルで質問をどのように表現すればよいかよくわかりませんでした。だから、誰かが私が尋ねようとしていることについてより明確な考えを持っているなら、人類のより大きな利益のために、親切に編集してください.

次のコードがあります。

public class Main {
  public static void main(String[] args) {
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    GraphicsDevice gd = ge.getDefaultScreenDevice();

    JFrame frame = new JFrame();
    Window window = new Window(frame);

    JButton btn = new JButton("Quit");
    window.add(btn);

    if(gd.isFullScreenSupported())
        gd.setFullScreenWindow(window);

    btn.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
            GraphicsDevice gd = ge.getDefaultScreenDevice();
            gd.setFullScreenWindow(null);
        }
    });
}

}

私がやりたいことは、全画面モードで示されるライブラリ システムを作成することです。全画面表示モードでは、テキスト フィールドなどを含むシンプルなフレーム ウィンドウが表示されます...ここでは重い 2D/3D グラフィックスは必要ありません...

私の問題は、画面全体に合わせて終了ボタンのサイズが変更されることです。フレーム、ウィンドウ、さらにはボタンでsetBounds、setSizeなどを使用しようとしました...しかし、ボタンを中央に配置できないようです。

私の質問: 全画面排他モードに設定された JFrame アプリケーション ウィンドウ内に JFrame アプリケーション ウィンドウを作成することは可能ですか? それとも、フルスクリーン専用モードは、描画などの 2D/3D メソッドと一緒にしか使用できませんか?

注: フル スクリーン モードを使用する唯一の目的は、黒の背景に設定し、アプリケーションの中央にあるこの黒の背景の上に Jframe ウィンドウを配置することです。アプリケーションが実際にはシステムであるという錯覚を与えることです。

ありがとうございました。

PS 終了ボタンは、私自身のテスト目的のためだけのものであることに注意してください。それは実際のシステムの一部ではないため、私の質問は、この特定の終了ボタンのサイズを変更する方法には関係ありません。

4

4 に答える 4

3

Fullscreen Exclusive Mode は、Swing コンポーネントを内部に持つことを意図したものではありません。これは、Java でグラフィックスを描画するための高性能な方法として意図されています (正しく実行されれば、ハードウェアの下敷きから最大限の利益を得ることができます)。

やりたいことは、装飾されていないJDesktopPaneを使用して実行でき、画面のサイズで最大化できます。次に、JInternalFrameを使用して、その JDesktopPane 内に JFrame のようなウィンドウを作成します。

それぞれの API セクションへのリンクを含めました。

于 2012-05-03T10:01:01.357 に答える
2

あなたが求めているのはMDIアプリケーションだと思います。それがあなたである場合は、ここをご覧ください。

于 2012-05-03T10:02:35.367 に答える
1

問題は、レイアウト マネージャーを正しく使用していないことです。レイアウト マネージャー (ビジュアル コンポーネントを画面上に配置およびサイズ変更するモジュール) について学びます。次に、ボタンをどのように表示するかを決定し、使用するレイアウト マネージャーを決定します。それはその仕事をします。

于 2012-05-03T09:29:03.353 に答える