BufferedImageで背景が変わる件

BufferedImageでVistaの画面が変わるにコメントを頂いたので、ちょっと調べてみました(私もなにげに気になっていたので)
この問題はMSも認識しているようで、Java アプリケーションを実行するとWindowsVistaAeroテーマデスクトップ効果は無効にされます、ここでの説明はJREがデスクトップウィンドウマネージャを無効にするからで、解決方法はJRE6を利用することだ、と書いてあります。
SUNのページを見ると、JRE6は初のVista対応のJREであると書いてあり、またLook and Feelについての経緯は、このページのNative Look and Feelの所に書いてあります。

今日の時点で下記のコードを実行してみました。

 JFrame frame = new JFrame();
 frame.getContentPane().add(new Label(){
  public void paint(Graphics g) {
   BufferedImage img = new BufferedImage(200,200,BufferedImage.TYPE_INT_RGB);
   Graphics2D g2 = (Graphics2D)img.getGraphics();
   g2.drawLine(0,0,100,100);
   g2.dispose();
   g.drawImage(img,0,0,100,100,null);
  }
 });
 frame.setVisible(true);

結果は以下の通り。(NG=視覚効果がベーシックに戻る状態)

  • JRE1.3.1_20 NG
  • JRE1.4.2_12 NG
  • JRE1.5.0_11 OK
  • JRE1.6.0_01 OK

少なくとも4/30にはJRE1.5がNGだったのでMS側も対応を入れたのかもしれません(調査したときから何度かパッチが当たったので)
とりあえず現時点では上記のような感じです。