質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Q&A

1回答

1619閲覧

プログラミング初心者ですTwitterクライアントを作っているものです

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

0グッド

0クリップ

投稿2017/01/17 07:08

編集2022/01/12 10:55

JavaでTwitterクライアントを作ってるんですがGUIでうまくいかず困っています。

package

1 2import java.awt.EventQueue; 3import java.io.BufferedReader; 4import java.io.IOException; 5import java.io.InputStreamReader; 6 7import javax.swing.BoxLayout; 8import javax.swing.JFrame; 9import javax.swing.JLabel; 10import javax.swing.JPanel; 11import javax.swing.JScrollPane; 12import javax.swing.ScrollPaneConstants; 13import javax.swing.border.EmptyBorder; 14 15import twitter4j.ResponseList; 16import twitter4j.Status; 17import twitter4j.Twitter; 18import twitter4j.TwitterException; 19import twitter4j.TwitterFactory; 20import twitter4j.User; 21 22public class TwitterClientGUI extends JFrame { 23 24 private JPanel contentPane; 25 26 /** 27 * Launch the application. 28 */ 29 public static void main(String[] args) { 30 EventQueue.invokeLater(new Runnable() { 31 public void run() { 32 try { 33 TwitterClientGUI frame = new TwitterClientGUI(); 34 frame.setVisible(true); 35 } catch (Exception e) { 36 e.printStackTrace(); 37 } 38 } 39 }); 40 } 41 42 /** 43 * Create the frame. 44 * @throws IOException 45 * @throws TwitterException 46 */ 47 JLabel lblTweets []; 48 49 public TwitterClientGUI() throws IOException, TwitterException { 50 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 51 setBounds(100, 100, 450, 764); 52 contentPane = new JPanel(); 53 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 54 55 contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS)); 56 57 JPanel panel = new JPanel(); 58 contentPane.add(panel); 59 60 JLabel lblTweet1 = new JLabel("Tewwt1"); 61 panel.add(lblTweet1); 62 63 JPanel panel_1 = new JPanel(); 64 contentPane.add(panel_1); 65 66 JLabel lblTweet2 = new JLabel("Tweet2"); 67 panel_1.add(lblTweet2); 68 69 JPanel panel_2 = new JPanel(); 70 contentPane.add(panel_2); 71 72 JLabel lblTweet3 = new JLabel("Tweet3"); 73 panel_2.add(lblTweet3); 74 75 JScrollPane scrollPane = new JScrollPane(); 76 scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); 77 scrollPane.setViewportView(contentPane); 78 79 setContentPane(scrollPane); 80 81 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 82 String tweet = ""; 83 while(tweet.isEmpty()) { 84 System.out.print("今何してる ? : "); 85 tweet = br.readLine(); 86 if(tweet.length() > 140) { 87 System.out.println("字数制限を超えています。"); 88 tweet = ""; 89 continue; 90 91 } 92 93 } 94 95 // TODO 自動生成されたメソッド・スタブ 96 Twitter twitter = new TwitterFactory().getInstance(); 97 Status status = null; 98 try { 99 status = twitter.updateStatus(tweet); 100 } catch (TwitterException e1) { 101 // TODO 自動生成された catch ブロック 102 e1.printStackTrace(); 103 } 104 User user = twitter.verifyCredentials(); 105 106 107 try{ 108 //ツイートを表示 109 System.out.println(status.getUser().getScreenName() + " として投稿しました : " + status.getText()); 110 }catch(Exception e){ 111 System.out.print(e); 112 } 113 //TLの表示 114 try { 115 //TLの取得 116 ResponseList<Status> homeTl = twitter.getHomeTimeline(); 117 String tubuyaki [] = new String[homeTl.size()]; 118 119 int i = 0; 120 121 122 lblTweets = new JLabel[3]; 123 lblTweets[0] = lblTweet1; 124 lblTweets[1] = lblTweet2; 125 lblTweets[2] = lblTweet3; 126 127 128 129 130 131 132 133 for (Status status1 : homeTl) { 134 //つぶやきのユーザーIDの取得 135 String userName = status1.getUser().getScreenName(); 136 //つぶやきの取得 137 String tweet1 = status1.getText(); 138 lblTweets[i].setText("ユーザーID:" + userName + "\r\n" + "tweet:" + tweet1); 139 } 140 141 142 } catch (TwitterException e) { 143 e.printStackTrace(); 144 145 } 146 } 147 148} 149

現状の問題は
TLをJlabelでTLを表示できたが最後に取得したツイートしか表示されない

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MasashiKimura

2017/01/17 08:08

エラーの内容を書いていただけますか?
退会済みユーザー

退会済みユーザー

2017/01/18 02:14

すいません少しいじってたらエラーは消えたのですがラベルに最後に取得したツイートしか表示できなくて今度はそこでつまずいてます
guest

回答1

0

Java

1 2 for (Status status1 : homeTl) { 3 //つぶやきのユーザーIDの取得 4 String userName = status1.getUser().getScreenName(); 5 //つぶやきの取得 6 String tweet1 = status1.getText(); 7 lblTweets[i].setText("ユーザーID:" + userName + "\r\n" + "tweet:" + tweet1); 8 } 9

lblTweets[i]でiがインクリメントされていないから初期値である0番目だけ更新されてます。

投稿2017/01/18 02:39

masaya_ohashi

総合スコア9206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問