El problema que tengo, es que no se como hacer que ese valor se "refresque" pasado X tiempo.
Mi código están en 2 partes, uno que arma la ventana y el otro que lee la URL y me devuelve un INT con el número de personas en el chat (Ese valor necesito actualizar mientras el programa esta corriendo.
TwitchMonitor.java
Código Java:
Ver original
import java.awt.Color; import java.awt.EventQueue; import java.awt.Font; import java.io.IOException; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingConstants; import javax.swing.border.EmptyBorder; import org.json.JSONException; { /** * */ private static final long serialVersionUID = 1L; /** * Launch the application. */ public void run() { try { TwitchMonitor frame = new TwitchMonitor(); frame.setVisible(true); e.printStackTrace(); } } }); } /** * Create the frame. * @throws JSONException * @throws IOException */ setResizable(false); setTitle("Chatters Monitor for Twitch Channels by MrAmericanMike"); try{ // URL urlIcon = TwitchMonitor.class.getResource("/resources/icon.png"); // ImageIcon img = new ImageIcon(urlIcon); // this.setIconImage(img.getImage()); } e.printStackTrace(); } setSize(200, 130); setLocationRelativeTo(null); setContentPane(thePanel); labelChatters.setBounds(5, 5, 185, 30); int chattersCount = JsonReader.count(channelName.toLowerCase()); labelChattersCount.setBounds(5, 0, 185, 130); try{ // URL url = TwitchMonitor.class.getResource("/resources/background.png"); // lblNewLabel.setIcon(new ImageIcon(url)); } e.printStackTrace(); } lblNewLabel.setBounds(0, 0, 200, 130); thePanel.setLayout(null); thePanel.add(labelChatters); thePanel.add(labelChattersCount); thePanel.add(lblNewLabel); } }//END CLASS
JsonReader.java
Código Javascript:
Ver original
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.net.URL; import java.nio.charset.Charset; import org.json.JSONException; import org.json.JSONObject; public class JsonReader { private static String readAll(Reader rd) throws IOException { StringBuilder sb = new StringBuilder(); int cp; while ((cp = rd.read()) != -1) { sb.append((char) cp); } return sb.toString(); } public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException { InputStream is = new URL(url).openStream(); try { BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8"))); String jsonText = readAll(rd); JSONObject json = new JSONObject(jsonText); return json; } finally { is.close(); } } public static void main(String[] args) throws IOException, JSONException { } public static int count(String channelName) throws IOException, JSONException { JSONObject json = readJsonFromUrl("http://tmi.twitch.tv/group/user/"+channelName+"/chatters"); int chattersCount = (Integer)json.get("chatter_count"); return chattersCount; } }
Agradezco cualquier ayuda que me puedan dar. ;)