GWのガイガーカウンタ自作チャレンジ(2台目) ネクスト(20)グラフ化ツール
取り敢えず、web上のcsvファイルをアクセスして、折れ線グラフとしてインターネットブラウザへ表示するJavaアプレットを作ってみた。まだ、装飾機能はない。なお、下画像のグラフの内容自身は、テスト用のなので、意味がない情報です。
Javaのソースコードは、、、、
// ファイル名「test.class」として保存しないと、javacはエラーになる。
// 本ソースコードは、BSDライセンスでの配布とする。
import java.awt.*;
import java.util.*;
import java.io.*;
import java.net.*;
import java.applet.Applet;
public class test extends Applet
{
int sx=2;
int sy=3;
int wx=320;
int wy=240;
public void init() {
this.setBackground(Color.white);
}
public void paint(Graphics g) {
Date dt = new Date();
Calendar cal = Calendar.getInstance();
int myYear = cal.get(Calendar.YEAR);
int myMon = cal.get(Calendar.MONTH) + 1;
int myDay = cal.get(Calendar.DATE);
String myDate;
// 以下、URLの生成は、使用者がカスタマイズする
//
myDate = "/demo/gmdata_" + myYear;
if (myMon < 10) {
myDate = myDate + "0" ;
}
myDate = myDate + myMon;
if (myDay < 10) {
myDate = myDate + "0" ;
}
myDate = myDate + myDay + ".csv";
String url; String host = "XXX.XX"; // ホスト名
int port = 80; // ポート名
Socket sock;
BufferedReader sockin;
BufferedWriter sockout;
String str;
int x=30,y=30,h=40,n=3;
int i=0;
int j=0;
int px_cur=0, py_cur=0;
int px_prv=0, py_prv=0;
// url = "http://" + host + ":" + port + myDate;
url = "http://" + host + myDate;
System.out.println( url );
try {
wx = sx * 24 * 6;
g.drawLine(0,wy-1,wx,wy-1 ); // X
g.drawLine(0,wy-10*sy,wx,wy-10*sy ); // X
for (i=0; i<8; i++ ) {
g.drawLine(0,10*i*sy,wx,10*i*sy); // X
}
for (i=0; i<(6*24); i+=12 ) {
g.drawLine(sx*i,0,sx*i,wy); // Y
}
g.drawLine(sx*i,0,sx*i,wy); // Y
sock = new Socket ( host, port );
sockin = new BufferedReader(
new InputStreamReader(sock.getInputStream()));
sockout = new BufferedWriter(
new OutputStreamWriter(sock.getOutputStream()));
sockout.write("GET " + url +" HTTP/1.1\r\n");
sockout.write("Host: " + host + "\r\n");
sockout.write("Connection: close\r\n");
sockout.write("\r\n");
sockout.flush();
str = sockin.readLine();
System.out.println(str);
str = sockin.readLine();
System.out.println(str);
str = sockin.readLine();
System.out.println(str);
str = sockin.readLine();
System.out.println(str);
str = sockin.readLine();
System.out.println(str);
str = sockin.readLine();
System.out.println(str);
str = sockin.readLine();
System.out.println(str);
str = sockin.readLine();
System.out.println(str);
str = sockin.readLine();
System.out.println(str);
str = sockin.readLine();
System.out.println(str);
str = sockin.readLine();
System.out.println(str);
g.setColor( Color.RED );
while ((str = sockin.readLine()) != null) {
System.out.println("------- 002 ------\n");
System.out.println(str);
px_cur = j * 1;
StringTokenizer st = new StringTokenizer(str, ",");
System.out.println("------- 003 ------\n");
st.nextToken();
st.hasMoreTokens();
py_cur = Integer.valueOf(st.nextToken().replaceAll(" ", "" ))*sy;
g.drawLine( px_prv*sx, wy-py_prv, px_cur*sx, wy-py_cur );
j++;
px_prv = px_cur;
py_prv = py_cur;
}
sockout.close();
sockin.close();
sock.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
こんな感じ。チョッチ疲れた(*´д`*)〜з iPadでもJavaアプレットが動くものと誤解してたが、動かなかったのかと、更に疲れた(*´д`*)〜з
トラックバック(0)
このブログ記事を参照しているブログ一覧: GWのガイガーカウンタ自作チャレンジ(2台目) ネクスト(20)グラフ化ツール
このブログ記事に対するトラックバックURL: http://the.nerd.jp/blogs/cgi-bin/mt-tb.cgi/4625








