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

回答編集履歴

1

表現がわかりにくい

2019/01/17 03:03

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -4,7 +4,7 @@
4
4
  Appletを使ってしまうと最新のJDK(JDK11)をインストールした人は(わざわざIEなどを使わないと)動かす手段がないので質問自体をスルーしてしまう可能性が高くなってしまうのではないかと思います。Appletを使わないことをまずお勧めします。
5
5
 
6
6
  - PixelGrabber
7
- かなり懐かしい感じの手法に感じました。はっきりいってしまうと応用場面に乏しい古い手法です。このクラスは、低速な回線でゆっくりサーバーから送信されてくる画像データを、UIスレッド上で画面がフリーズしないように「ちょっとずつ処理する」ためのものですが「画像を低速回線から読む」専用の機能で、様々な場面で応用ができるような一般性に乏しいです。画像処理は「画面に結果を出さない」のであれば非GUI=CUIプログラムでも実装可能ですがPixelGrabberはそこでは使えません。
7
+ かなり懐かしい感じの手法に感じました。はっきりいってしまうと応用場面に乏しい古い手法です。このクラスは、低速な回線でゆっくりサーバーから送信されてくる画像データを、UIスレッド上で画面がフリーズしないように「ちょっとずつ処理する」ためのものですが「画像を低速回線から読む」専用の機能であり、様々な場面で応用ができるとはいがたいです。例えば画像処理は「画面に結果を出さない」のであれば非GUI=CUIプログラムでも実装可能ですがPixelGrabberはそこでは使えません。
8
8
  swingで画像を処理するならImageIO/BufferedImageクラスをお勧めします。また長時間かかるような画像処理をGUIアプリケーションで行うならバックグラウンドスレッドで行うとよいでしょう。
9
9
  画像に限らず、swingでバックグラウンドスレッドを用いたデータ生成の結果を画面へ反映させる手法としてSwingUtilities.invokeLaterという汎用機構があります。その使い方となぜそれを使わないといけないかも調べてみてください。その方がずっと応用場面が広いです。
10
10