2011-08-16 4 views
1

今、私は設定ファイルに基づいていくつかのフルスクリーンJFramesを生成するフルスクリーンアプリケーションを持っています。 、(フルスクリーンで)JFramesのより簡単な代替手段ですか?

setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 
setUndecorated(true); 
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
setBounds(0,0,screenSize.width, screenSize.height); 

問題があるこれらのJFramesは、Linux環境での動作不良されています。これらのJFramesはこのように、フルスクリーンモードです。私はrequestFocusrequestFocusInWindowtoFrontsetVisibleなどで一生懸命苦労しました。しかし、Linuxでは正しく動作するものはありません。問題はいくつかのフレームがあり、ボタンをクリックしたときに切り替える必要があるということです(基本的にメニューです)。

私は、JFrameが使用するのに最適なオブジェクトではないと考え始めています。もしそれがあったとしても、複数のフレームを管理する方が簡単でしょうか?optionPanes?または何か類似している?ソリューションが何であれ、私はDO_NOTHING_ON_CLOSEsetUndecorated(または類似のもの)にできる必要があります。

注:理由がわからない場合は、私のJFrameを変更する必要があり、どのようにフォーカス/表示を切り替えることができるのか分かります。これは私の問題に対する答えにもなります。

+3

CardLayoutなどで複数のJFrameを複数のビューで表示するのはなぜですか? –

+0

@Hovercraft:CardLayoutが私の問題をどのように解決できるかは分かりません。たぶん私はあなたが何を言おうとしているのか見ていないでしょう。私のアプリケーションは、絶対配置を使用して配置できるということに基づいているため、現在、JFramesではLayoutManagerを使用していません。 – n0pe

+0

JTabbedPaneを含む 'JFrame'を使うことができます。ここでは、各タブ(例えば' JPanel'など)は現在のフレーム情報を持っています。それは唯一の可能性です、多分最高の解決策があります。レイアウトを好むなら、 'CardLayout'がベストな選択でしょう。 – Charliemops

答えて

1

私は少し周りcardLayoutと変化する自分のコードを使用することを決定しました。

1

あなたの電話が画面をフルスクリーンに設定してもらえませんか?

http://download.oracle.com/javase/tutorial/extra/fullscreen/exclusivemode.html

+0

フルスクリーン排他モードで問題が発生したのは、コンピュータのグラフィックスカードによって異なるためです。そして私は可能な限りクロスプラットフォームとしてこれを維持しようとしています。なぜ私は単に画面のサイズをつかんで、そのサイズになるようにウィンドウを設定するのですか?すべての装飾を削除します。 – n0pe