我正在创建一个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);
}
}
答案 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);
}