2009-04-06 8 views
5

私は、心理学実験で使用されるJava Swingアプリケーションに取り組んでいます。研究者は、ユーザーに外部刺激を与えないために、プログラムを「画面を黒くする」ように要求しました。彼らはスイングアプリが真にフルスクリーンで、トップバーにはどのタイプのタイトルバーや最小化/最大化/閉じるボタンも必要としません。WindowsのタイトルバーをカバーするJava Swingアプリケーションを作成するにはどうすればよいですか?

ソフトウェアがどのように私はこれを行うと、該当する場合、コードスニペットを提供してくださいすることができますのJava SE 6

を使用して、Windows XP環境で実行されます。

ありがとうございます!

答えて

11

フルスクリーンJava APIを使用しますか?

http://java.sun.com/docs/books/tutorial/extra/fullscreen/exclusivemode.html

http://www.artificis.hu/2006/03/16/java-awtswing-fullscreen

JFrame fr = new JFrame(); 
fr.setResizable(false); 
if (!fr.isDisplayable()) { 
    // Can only do this when the frame is not visible 
    fr.setUndecorated(true); 
} 
GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); 
try { 
    if (gd.isFullScreenSupported()) { 
    gd.setFullScreenWindow(fr); 
    } else { 
    // Can't run fullscreen, need to bodge around it (setSize to screen size, etc) 
    } 
    fr.setVisible(true); 
    // Your business logic here 
} finally { 
    gd.setFullScreenWindow(null); 
} 
+0

リンクを投稿するだけでなく、これらのAPIをどのように使用するかを簡潔に説明できますか?私は明らかにリンクを読むでしょうが、まだ... – HipsterZipster

+0

フルスクリーンモードは、通常のSwingアプリケーションとは異なるパラダイムを使います。これは、ゲームやスクリーンセーバーのようなものを対象としています。このリンクによれば、「ほとんどのフルスクリーン専用アプリケーションは、装飾されていないウィンドウの使用に適しています。オプションですが、もっとコードを書く必要があります。 – erickson

+0

これは、両方のリンクがマッシュアップされており、テストされていません。助け? – JeeBee

9

setUndecorated(true)プロパティを使用します。これは、フレームを可視にする前に行う必要があることに注意してください。

JFrame frame = new JFrame(); 
Toolkit tk = Toolkit.getDefaultToolkit(); 
frame.setBounds(new Rectangle(new Point(0, 0), tk.getScreenSize())); 
frame.setUndecorated(true); 
frame.setVisible(true); 
0

私はこのスレッドが古いです知っているが、同じことを自分で行う方法で検索しているとき、私はそれを発見しました。私は使いたい解決策を見つけることができなかったので、これを思いついた。私は以下の解決策が働くだけでなく、上記の答えよりもはるかに簡単であることを発見しました。

JFrame frame = new JFrame(); 
frame.setResizable(false); 
frame.setUndecorated(true); 
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); 
frame.setSize(dim); 
frame.setVisible(true); 
関連する問題