あれこれ備忘録@はてなブログ

勉強したことやニュースや出来事を備忘録として書いていきます

このブログには広告が含まれます

JListに画像を表示する

twitter4jを使ったjavaアプリケーションでタイムラインを取得してそれをJListに表示させようとしたけれど、文字列を表示するだけならすぐにできたのですが、画像を表示させようとすると結構面倒ですね。 JList.addElement(Object object) となっているのでここに文字列ではなく、JLabelやJPanelを渡せばすぐに表示できるのかと思っていたのですが、そうではなかったようで。。。 JListの各リスト項目を表示するルールを決めているレンダラーを定義しなおさないといけないらしい。 そのままLabelなどを渡しても、Labelの各情報を表す文字列を表示されるのはレンダラーでObject.toString()としてそれを表示するようにしているからなのでしょう。 ということで、またサンプルコード探し。 Swing再入門 レンダラーとモデル(CodeZine) JList (Java Platform SE 6) レンダラーでJListの表示をカスタマイズ! - [Javaプログラミング](All About) class SomeThing extends JLabel implements ListCellRenderer というふうにListCellRendererインターフェースを実装するクラスを作るということなのですが、JLabelやJPanelを継承する必要はあるのでしょうか? 確かにJava公式のリファレンスJavaDocでそのようにしているわけですから間違いはないと思いますが。 理由は上のようなクラスの中でオーバライドするメソッド public Component getListCellRendererComponent( JList list, // the list Object value, // value to display int index, // cell index boolean isSelected, // is the cell selected boolean cellHasFocus) // does the cell have focus の中でJLabelやJPanelを定義して、これを返り値のComponentとして返せば良いような気がするからなんです。 何か不都合でもあるんでしょうか。 Swingのいい本はないでしょうかね? 今すぐ使えるかんたんTwitterツイッター入門 今話題のTwitterをもっと楽しく! Twitterの「いまさら聞けない」疑問点を一から徹底解説。Twitterの基本的な使い方から楽しみ方までバッチリ紹介。 Twitter就活 「内定なう」の時代がやってきた! Twitterは就活の最強ツールだ! Twitterを使った企業研究、OB・OG訪問、自己PR、エントリーシート対策、面接対策などのやり方を伝授する。また、企業・採用担当者のTwitter活用法も紹介。 Java Swing Hacks 今日から使える驚きのGUIプログラミング集 原タイトル:Swing hacks Joshua Marinacci/著 Chris Adamson/著 神戸博之/監訳 島田秋雄/監訳 加藤慶彦/訳 グラフィックJava2〈Vol.2〉Swing編(下) (サンソフトプレスシリーズ) Java GUIプログラミング さらにパワーアップしたSwing(3) とりあえず、こんな感じで出来ました。 twitter4j java ツイッター