-2

Twitter4を使用してTwitterクライアントを構築しようとしています。ユーザーのツイートや情報などをJlistのDefaultListModelに保存しています。ユーザーのプロフィール写真を追加したいのですが、これを行うには、ListCellRendererを使用してアイコンを設定しています。ここでの私の問題は、ListCellRendererのテキストとアイコンを1人のユーザー情報にしか設定できないことです。ループを使用して複数のツイートをプルダウンしてモデルに追加しますが、レンダラーは1つのツイートを何度も設定しているだけです。

これはツイートを取得するためのコードです

for (int i = 0; i < list.size(); i++) {
 Status each = (Status) list.get(i);

                    UI.model.addElement("<html><body style='width: 450px;'>"
                            + "@"
                            + each.getUser().getScreenName()
                            + " - "
                            + each.getText() + "<html><br>");

                    UI.whatIsDisplayedList.setCellRenderer(new newsFeedRenderer(each)); }

そしてこれが私がListCellRendererを設定する方法です

JLabel pic = new JLabel();

        try {
            ImageIcon img = new ImageIcon(TwitterFunctions.eachTweetProfilePic(each.getUser()));
            pic.setIcon(img);
            setIcon(img);
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (TwitterException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        setText( "@" + each.getUser().getScreenName() + " - " + each.getText());

ツイートの正しいフォーマットを有効にするには、どのような変更を加える必要がありますか?

助けてくれてありがとう!

4

1 に答える 1

0

newFeedReader()をsetCellRenderer();に渡さないでください。ListCellRendererは、セルのペイントに使用されるオブジェクトであり、データベースの種類のオブジェクトとしては使用されません。あなたがやりたいことは、

  • 最初にすべてのステータスを取得します
  • それらを配列としてJListに渡します
  • 次に、カスタムListCellRendererクラスを作成し、getListCellRendererComponentメソッドで、ListCellRendererコードを含むJLabelを返します。
于 2013-03-19T00:08:56.300 に答える