SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

Java、Swing、Twitter4jを使ってあなただけのTwitterアプリを作成しよう

ステータスの更新、フォロワーのリストの取得などを簡単に実装

フォロワーを表示する

 サンプルアプリケーションには、3つのメインパネルがあります。1つのパネルにはフォロワーのリストを表示します。2番目のパネルには本人のつぶやきを表示し、これを更新していきます。最後のパネルには、つぶやきを検索する機能とダイレクトメッセージを送る機能を用意します。フォロワー表示パネルのコードを以下のリストに示します。

import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.User;

import javax.swing.*;
import java.net.URL;
import java.awt.*;

public class FollowerPanel extends JPanel {
  URL imageUrl;
  int panelWidth = 250;
  int panelHeight = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight();
  java.util.List<User> followers;
  JLabel followerName;
  JLabel followerImg;
  JPanel followerPanel;
  JLabel followerTitleLabel;
  JScrollPane followerJScrollPane;

  public FollowerPanel(Twitter twitter) throws TwitterException {
    followers = twitter.getFollowers();
    this.setLayout(new GridLayout(1, followers.size()));
    this.setSize(panelWidth, panelHeight);
    this.setPreferredSize(new Dimension(panelWidth, panelHeight));
    this.setMinimumSize(new Dimension(panelWidth, panelHeight));

    followerPanel = new JPanel();
    followerPanel.setLayout(new GridLayout(followers.size(), 1, 0, 0));
    followerPanel.setSize(panelWidth, panelHeight);
    followerPanel.setPreferredSize(new Dimension(panelWidth, panelHeight));
    followerPanel.setMinimumSize(new Dimension(panelWidth, panelHeight));


    int subPanelHeight = 50;
    for (User u : followers) {
      imageUrl = u.getProfileImageURL();

      followerName = new JLabel(u.getName());

      followerImg = new JLabel(new ImageIcon(imageUrl));
      followerImg.setSize(50, 50);
      followerImg.setPreferredSize(new Dimension(50, subPanelHeight));
      followerImg.setMaximumSize(new Dimension(50, subPanelHeight));
      JPanel thisFollowerPanel = new JPanel(new GridLayout(1, 2));
      thisFollowerPanel.add(followerName);
      thisFollowerPanel.add(followerImg);

      followerPanel.add(thisFollowerPanel);
    }
    followerJScrollPane = new JScrollPane(followerPanel,
      JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, // 垂直バー
      JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    this.add(followerJScrollPane);
  }
}

 このコンストラクタは1つのTwitter型の引数を常に受け取り、TwitterException例外をスローします。最初にtwitter.getFollowers()メソッドを呼び出すことで、twitter4j.User型のListを取得します。このユーザーリストに対して反復処理を行い、getProfileImageURL()メソッドを呼び出して各ユーザーの画像がある場所を確認し、getName()メソッドを呼び出してユーザー名を取得します。実際の画像のバイトデータを取得するのではなく、URLを取得することに注意してください。新規のImageIconを作成するには、URLがあれば十分です。

 FollowerPanelクラスはJPanelを継承します。フォロワーの画像と表示名が両方あると便利なので、JPanelにフォロワーの名前を示すJLabelを作成し、フォロワーの表示画像を収めるImageIconを作成します。

 各フォロワーのJPanelの位置決めにはGridLayoutを使用し、これを先ほどのJPanelにネストします。JPanelJScrollBar内に配置します。次にJScrollBarをインスタンスに追加します。これもです。完成したパネルは図3のようになります。

図3 フォロワーパネル
図3 フォロワーパネル

次のページ
タイムライン

この記事は参考になりましたか?

japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Cesar Otero(Cesar Otero)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4409 2009/10/07 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー