2013-12-14 5 views
9

coderanch.comにも投稿されています。サイズ変更時にWindows 8.1でJFrameがフリーズする

import javax.swing.*; 

public class Tmp { 
    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       JFrame frame = new JFrame(); 
       frame.setSize(200, 200); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       frame.add(new JTextField()); 
       frame.setVisible(true); 
      } 
     }); 
    } 
} 

このJFrameのサイズ変更に関する問題。

これは、プログラムが起動した直後、デフォルトでどのように見えるかです:

enter image description here

私は上のような(写真に示すように、それのサイズを変更し、画面の上部にマウスポインタを移動しようとすると、下の写真)私はこれを参照してください。私は、フレームのサイズが変更されたマウスが、無応答を離すと

enter image description here

を。そしてそこには黒いスペースがあります。 これは、それがどのように見えるかです:これは、Windows 8.1とJava 1.7.0_45(それはまた、Windows 7上で起こる)で発生

enter image description here


Windowsでフレームのサイズを変更する他の方法を使用しているときに問題は発生しません。
「ドラッグ中にウィンドウの内容を表示する」がシステム設定でアクティブになっている場合にのみ発生します。
どうしてですか?
これをどのように修正できますか?

+0

'frame.setVisible(true);を' frame.pack();に変更してみてください。 frame.setVisible(true); '.. –

+0

@AndrewThompsonは変更されていません。 –

+0

私は青です(pre_relleasesの一人)ユーザーですが、私は決してそれを見ません – mKorbel

答えて

0

iはjdk1.7.0_25と窓7を持っているし、あなたのコードは、私が持っている私
用としてうまく働いた3溶液:
1-iは、Oracleは、あなたが25
で45を置き換えることができます45の更新で間違っていると思います 2 - Javaのグラフィカルユーザインタフェース(OSの場合)、Windows 8がJava 7と互換性がない場合もあります。
3フレームリサイズにリスナーを追加してrepaint()を呼び出すことができます。実際のサイズ
にリスナーまたは設定されたサイズのボディにも、あなたは(真)setUndecoratedを使用して試すことができますし、フレームを実装するカスタムマウスリスナーが

+1

私はこれを確認することができないので、今すぐWin 7マシンにアクセスする必要はありません。 フレームのサイズ変更時にリスナーを追加し、その中にrepaintを呼び出しました。助けてくれなかった。さらに悪いことに、リサイズ中にリスナーがまったく解雇されなかったようです! (私はこの部分で、マウスのリリースとフレームの高さ全体にまたがるフレームを意味します) –

+0

は変です! jdk 7 u 25をダウンロードしてもう一度お試しください。 あなたのIDEは何ですか?このコードを実行する方法は? IDEまたはCMDで実行できますか? –

+1

私はIntellij IDEA Community Edition 13.0を使用します。これをcmd行で実行すると、変更はありません。 –

3

のサイズを変更するこれはhereを報告したバグのようにたくさん聞こえます。 JDK8と9で修正されていると思われ、issueトラッカーによれば、バグ修正はバージョン7u80にバックポートされています。

関連する問題