UDP電圧計Java版 [ColdFire V2]
MCF52233付録基板で作る、UDP電圧計というアプリケーションプログラムが紹介されていました。 C# 版の電圧計プログラムは、性に合わないので、Javaに移植してみようと思いたちました。 ところが、ちょっと Java から離れていた間に、記憶が薄れるやら、 Java そのものが変貌しているやら、結構、難航してしまいました。 とりあえず、今夜のところは、これでご勘弁を。
package org.noritan.udpmeter; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.Graphics; import java.awt.HeadlessException; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class UdpMeter extends JFrame { int adValue = 0; JLabel meterLabel = new JLabel("XXXX"); JPanel meterPanel = new JPanel() { @Override public void paint(Graphics g) { super.paint(g); int w = getWidth(); int h = getHeight(); g.setColor(Color.BLACK); g.drawRect(1, 1, w - 2, h - 2); g.setColor(Color.RED); g.drawLine( w / 2, h * 3 / 4, (adValue - 2048) * w / 5000 + w / 2, h / 4); } }; public UdpMeter() throws HeadlessException { super(); Container contentPane = this.getContentPane(); meterLabel.setHorizontalAlignment(JLabel.CENTER); contentPane.add(meterLabel, BorderLayout.NORTH); contentPane.add(meterPanel, BorderLayout.CENTER); new Thread(new Receiver()).start(); } public class Receiver implements Runnable { byte[] buf = new byte[128]; @Override public void run() { // TODO Auto-generated method stub try { DatagramSocket socket = new DatagramSocket(30049); DatagramPacket packet = new DatagramPacket(buf, buf.length); try { for (;;) { socket.receive(packet); adValue = Integer.parseInt(new String(packet.getData(), 0, packet.getLength())); meterLabel.setText(String.valueOf(adValue)); meterPanel.repaint(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { socket.close(); } } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * @param args */ public static void main(String[] args) { UdpMeter frame = new UdpMeter(); frame.setBounds(10,10,400,300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
そうそう、 eclipse も、いつの間にやら GANYMEDE とかいうものになっていました。 私のお気に入りだった、 Visual Editor も、開発が止まっているみたいで。 まさに、浦島太郎状態です。
参考文献
Interface (インターフェース) 2008年 09月号 [雑誌]
- 作者:
- 出版社/メーカー: CQ出版
- 発売日: 2008/07/25
- メディア: 雑誌
>ちょっと Java から離れていた間に、
そうそう最近使ってない
使う時間がないとも言う
>私のお気に入りだった、 Visual Editor も、
私もお気に入りです。
Visual EditorがないとVisualなプログラムが作れない
by きぃたん@大阪 (2008-08-04 15:07)
その後、調査したところ、 eclipse.org 本家の提供ではないけれど、GANYMEDE 対応の Visual Editor が作成されているのを見つけて、入れてみました。以前の版よりは、安定しているように思います。余裕があれば、報告します。
このページは、日々変遷しているようです。
http://wiki.eclipse.org/VE/Installing
by noritan (2008-08-04 23:50)