0

一度に 5 つのツイートを表示する Twitter フィードを作成しています。

ツイートは 5 分ごとに更新されます。新しいつぶやきが見つかったら、一番上のつぶやきを画面の外に移動し、新しいつぶやきを最後の位置に移動して、すべてのつぶやきが 1 つ上の位置に移動するようにします。

import com.francisli.processing.http.*;

HttpClient client;

HashMap Tweetzer = new HashMap();


int results_to_show = 5;
int updateTime = 10000;
int updateDiff = 0;

void setup()
{
    size(612, 612);
    textAlign(CENTER, CENTER);
}

void tweetUpdate()
{
    if(millis() > (updateTime + updateDiff))
    {
        client = new HttpClient(this, "search.twitter.com");
        client.GET("search.json?q=dublin&rpp="+results_to_show+"&result_type=recent");
        updateDiff = millis();
    }  
}



void mouseReleased()
{
    tweetUpdate();
}

void draw()
{

}

void responseReceived(HttpRequest request, HttpResponse response)
{
    if(response.statusCode == 200)
    {
        JSONObject allresults;
        allresults = response.getContentAsJSONObject();
        //JSONObject timeline_tweets = response.getContentAsJSONObject();

        for (int i=0; i<results_to_show; i++)
        {
            text(allresults.get("results").get(i).get("text").stringValue(), 50, 10+(i*100), 400, 400);
        }

    }

    else
    {
        text("UH-OH" + response.getContentAsString(), 50, 50);
    } 
}
4

1 に答える 1

0

in Java はこれLinkedListに対する良い解決策です。LinkedList.remove()最も古いアイテムを削除LinkedList.add()し、キューに新しいアイテムを追加します。詳細については、 Queue Interfaceのドキュメントを確認してください。以下に簡単な例を示します。

import java.util.LinkedList;

LinkedList myList;
int count = 1;

void setup() {
  myList = new LinkedList();
  for (int i = 0; i < 5; i++) {
    myList.add(count++);
  }
  frameRate(2);
}

void draw() {
  myList.remove();
  myList.add(count++);
  println(myList);
}
于 2013-03-30T19:07:34.373 に答える