在Twitter应用程序的处理中移动数据?

时间:2013-03-30 14:33:21

标签: java api twitter processing

我正在创建一个Twitter提要,一次显示五条推文。

推文每五分钟更新一次。一旦找到新的推文,我希望顶部的推文离开屏幕,新的推文进入最后一个位置,每条推文向上移动一个位置以允许这一点。

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);
    } 
}

1 个答案:

答案 0 :(得分:0)

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);
}