2012-03-03 12 views
9

私は私のクラスMainWindow内でこのコードを持っています。Windows 7 +のJava 6ではJava Windows 8のフルスクリーン?

public MainWindow() { 
    super("Shouldn't be visible..."); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setAlwaysOnTop(true); 
    setUndecorated(true); 
    setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR)); 

    addFocusListener(new FocusLostExiter()); 
    addKeyListener(new EscListener()); 

    setContentPane(canvas); 

    getContentPane().setPreferredSize(Toolkit.getDefaultToolkit().getScreenSize()); 
    pack(); 
    setResizable(false); 
} 

public void setFullScreen(boolean b) { 
    if(!b) { 
     device.setFullScreenWindow(null); 
    } 
    setVisible(b); 
    //System.out.println(device.getFullScreenWindow()); 
    if(b) { 
     device.setFullScreenWindow(this); 
    } 
} 

を、それはフルスクリーンとしてだけで正常に動作します。問題なくどこでもクリックできます。しかし、Windows 8 + Java 6では、最上部の約100を除くピクセルの一番左の列と、開始ボタンがあるはずのボックスはすべて台無しです。列とボックスで、カーソルが再び通常のマウスに変わり、ウィンドウがクリックを無視します。スタートボックスでクリックすると、私のプログラムにクリックイベントを与えるのではなく、スタートメニューが表示されます。これはJavaに問題があるようですが、W8以外のどこでも動作するためです。何が間違っているか知っていますか?

+7

Windows 8はまだベータ版なので、ドライバとJava VMとの完全な互換性は期待しないでください。 – Sibbo

+0

しかし、それが修正されると期待できますか? –

+0

Windows 8が立ち上げられたときには、おそらくそれ以前の修正プログラムで作業します;)修正する必要がありますが、いつわかりませんか。 – Sibbo

答えて

0

はこれを適切に答えたことはありませんあなたは簡単に自分のコンストラクタの内部でこれを置くことができます...これは、Windows 8自体のJREの問題でした。今修正されました。

0

MainWindowクラスがJFrameの場合は、getContentPane()を使用する必要はありません。私はあなたがsetFullScreen関数が必要とは思わない。

0

通常

Toolkit toolkit = Toolkit.getDefaultToolKit(); 

Dimension d = toolkit.getScreenSize(); 

int w = d.width; 

int h = d.height; 

setSize(w,h); 
1

元の画面サイズの半分の幅と高さを使用するのが好ましい、私は、ウィンドウの下部が切り取らなっていた、以前にも同様の問題を抱えていた、フルスクリーンのためにこれを試してみてくださいあなたのメイン・ウィンドウクラスはJFrameのは、これら2つのメソッドを呼び出すと、トリックを行う必要が拡張すると仮定すると

frame.setLocationByPlatform(true); 
frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 

:Windowsマシン上で、これらの行に追加して問題を修正しました。

0

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
setBounds(0,0,screenSize.width, screenSize.height); 
1
public NewFrame(){ 

    this.setDefaultCloseOperation(EXIT_ON_CLOSE); 

    this.setSize(Toolkit.getDefaultToolkit().getScreenSize()); 

    this.setVisible(true); 

}