goo blog サービス終了のお知らせ 

実環境下の簡易流体計測とVisualBase(可視化と知的可視化)

実環境下の簡易流体計測と知識集約型可視化統合環境

PS3とプログラミング(3)

2006-12-19 23:48:30 | Weblog

PS3でプログラミングが楽しめる→ユーザが増える,というようなシナリオにおいて問題となるのは,独自プログラミング言語の提供の是非です.
 教育の現場でプログラミングを教えるものとしては,ベースは既存の言語を用いて,ハードウェアに依存する部分をクラスライブラリのような形で提供してくれるのが有り難いのです.
 例えば,Javaでのマウス操作の基本となるプログラムに以下のようなものがあります.MouseAdaptorに相当するところを提供してくれるのが望ましいのです.ただ,下のプログラムは,応用性に乏しいので,もう少し遊べるものを次回紹介します.
(PS3から離れつつありますが・・・,続く)

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//
public class Mouse extends JFrame{
   MyPanel mp = null;
   Mouse(){
      mp = new MyPanel();
      Container c = this.getContentPane();
      c.add(mp);
   }
   public static void main(String args[]){
      Mouse jf = new Mouse();
      jf.setSize(640,480);
      jf.setTitle("swing demo2");
      jf.addWindowListener(
         new WindowAdapter(){
             public void windowClosing(WindowEvent e){
                System.exit(0);
             }
         }
      );
      jf.show();
   }
//inner class P
   class MyPanel extends JPanel{
      int ixo,jyo;
      int ixm,jym;
      MyPanel(){
         setBackground(Color.lightGray);
         ixo = 320;
         jyo = 240;
         ixm = ixo;
         jym = jyo;
         MyMouse mm = new MyMouse();
         addMouseListener(mm);
      }
      public void paintComponent(Graphics g){
         super.paintComponent(g);
         myDrawing(g);
      }
      public void myDrawing(Graphics g){
         g.setColor(new Color(255,250,0));
         g.drawLine(ixo,jyo,ixm,jym);
         g.setColor(new Color(128,50,255));
         g.drawString("M",ixm,jym);
      }
//inner class P-M
      class MyMouse extends MouseAdapter{
          MyMouse(){
          }
          public void mousePressed(MouseEvent e){
             ixm=e.getX();
             jym=e.getY();
             mp.repaint();
          }
      }
   }
}