質問するログイン新規登録

回答編集履歴

3

finalの説明を追記しました。

2016/08/10 04:13

投稿

argius
argius

スコア9396

answer CHANGED
@@ -7,6 +7,8 @@
7
7
  ```
8
8
  // import javax.swing.SwingUtilities;
9
9
 
10
+ // ※ImageIcon icon は 匿名クラスから参照するためfinalをつけてください
11
+
10
12
  // label1.setIcon(icon); // ここを下記コードで置き換え
11
13
  SwingUtilities.invokeLater(new Runnable() {
12
14
  @Override

2

(再)本文中のSwingUtilities\.updateComponentTreeUI\(\)にframeを追加しました。

2016/08/10 04:13

投稿

argius
argius

スコア9396

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  フレームを透明化しているまたはUndecoratedしている影響だと思いますが、フレームを完全に再描画させる必要があるようです。
2
- `setIcon(icon)`の後で`SwingUtilities.updateComponentTreeUI()`を実行して、フレームを強制的に再描画してみてください。
2
+ `setIcon(icon)`の後で`SwingUtilities.updateComponentTreeUI(frame)`を実行して、フレームを強制的に再描画してみてください。
3
3
  おそらく`setIcon(null)`も不要だと思います。
4
4
 
5
5
  描画タイミングを確実にするために、`SwingUtilities.invokeLater()`で呼び出してください。

1

本文中のSwingUtilities\.updateComponentTreeUI\(\)にframeを追加しました。

2016/08/10 03:41

投稿

argius
argius

スコア9396

answer CHANGED
File without changes