GWのガイガーカウンタ自作チャレンジ(2台目) ネクスト(20)グラフ化ツール
取り敢えず、web上のcsvファイルをアクセスして、折れ線グラフとしてインターネットブラウザへ表示するJavaアプレットを作ってみた。まだ、装飾機能はない。なお、下画像のグラフの内容自身は、テスト用のなので、意味がない情報です。
Javaのソースコードは、、、、
![11061904.jpg](http://the.nerd.jp/blogs/digip/pic/11061904-thumb-320x240.jpg)
// ファイル名「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