jFD開発したりしなかったり日誌
2008-07-17 [長年日記]
_ Orbすげー!
Oさんに教えてもらったOrbを試してみた。
リモート接続可能なメディアセンターアプリケーションなんだが、何ですかこれ、
尋常じゃない便利さなんですが。
動画、画像、音楽なんかが入ったPCにOrbをインストールし、Orbのアカウントを取得して
ログインすれば、あとはネットに繋がってるどのデバイスからでもそのマシン内のデータに
アクセスできてしまう。
クライアントはブラウザで、Windows Mobile機やiPhoneからだってアクセスできちゃうんですが。
動画はクライアントに合わせた適当なフォーマットでエンコードしながら送信してくれるようだ。
テレビチューナーがあれば番組を送信することも出来る。
なんて超テクノロジー。
これ、iPhoneと相性良いだろうな。
容量に難のある8GBのiPhoneでも、自宅PCにファイルを置いておいてリモートでアクセスすれば
何百GBだって扱える。
ワンセグなんて付いてないiPhoneだけど、テレビも見られる。
すごい。
個別の構成技術はそこまで目新しくないんだけど、まとめ方がうまいのも感心した。
まず、中央のサーバーがあって、それが各PCのアドレスを管理してくれているので、クライアントは
アカウントさえわかればIPを知らなくてもPCにアクセスできるのが良い。
さらにクライアントをブラウザにしたのが素晴らしくて、このおかげでクライアントを問わずに
(動画は見られないけど、PSPすら可能)PCにアクセスすることが出来る。
頭良いなあ。
今はまだマイナーげだけど、これ、将来売れるんじゃないかな。
_ JListはJTableより遅い
仕事で簡単なエクスプローラ風画面をSwingで作っていたのだが、ディレクトリ内の
ファイル一覧をJListで表示するようにしたらやけに遅い。
たまたま7000ファイルのディレクトリがあり、それを開いたらかなり長時間
固まってしまった。
ボトルネックを調査してて気がついた。
JTableは見えているセルに対してのみ、TableCellRenderer#getTableCellRendererComponentを
呼び出すが、JListは最初に全ての要素に対してListCellRenderer#getListCellRendererComponentを
呼び出している。
製作中のエクスプローラもどきはファイルのアイコンを表示したりしてるので、7000ファイル分の
アイコン取得で時間がかかってるというのは納得できる。
JListはJTableと違い、要素ごとにセルの高さを変えられるので、最初に全部のセルを取得して
全体の高さを知らないと、スクロールバーが描けないからだろうか?
とりあえず、今までJListで実装していた部分を、1列のみのJTableに差し替える事にしたところ、
悪くない速度で動くようになった。
JListはそんなに大量の要素を表示するのを想定してないってことなんだろうか。
- キーワード不明 ×25 / TableCellRenderer ×3 / jlist 遅い ×2 / jlist 大量の画像 ×2 / JList アイコン ×2 / orb iPhone テレビ 設定 ×1 / swing ディレクトリ表示 JList ×1 / TableCellRenderer getTableCellRendererComponent ×1 / JList 遅い ×1 / JTable エクスプローラ風 ×1 / TableCellRenderer 描画遅い ×1 / orbのアカウント ×1 / swing エクスプローラ風 ×1 / java jtable エクスプローラ ×1 / java jtable セルの高さ ×1 / jlist 高さ 自動 ×1 / SWING エクスプローラ ×1 / JTable 遅い ×1 / swing エクスプローラー アイコン ×1 / TableCellRenderer ListCellRenderer 違い ×1 / java explorer風 jList ×1 / ListCellRenderer 速度 ×1 / jtable cellの高さ ×1 / jlistのような jtable ×1 / java table 遅い ×1 / java jlist スクロール ×1 / jtable ファイル一覧 ×1 / jlist アイコン ×1 / jlist セルの高さ ×1 / JListとJTableの違い ×1 / jlist セル 高さ 個別 ×1 / orb pspで動画を見たい ×1 / jtable エクスプローラ ×1 / jtable アイコン ×1 / ListCellRenderer 遅い ×1 / JTableをエクスプローラ風にする ×1 / TableCellRenderer JList ×1