Lecture

マルチメディアプログラミング2006年後期

javaのマニュアル

http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/index.html

課題:お絵描きプログラムを作成してさらに取扱説明書を作成して提出すること

この課題のヒントは SimpleDraw をみてください。

提出課題として最低やってほしいこと

以下のことができれば加点します

詳細はSimpleDrawを見てください

取扱説明書の作り方

出来上がったプログラムの提出方法

  1. Finderの移動メニューから、「サーバへ接続...」を選んでください
  2. サーバアドレスのところにsiio.jpと書いてください
  3. 接続ボタンを押してください
  4. ゲストのラジオボタンを選んで、接続ボタンを押してください
  5. Publicを選択してください
  6. 画面にjava_reportというフォルダが見えると思います
  7. このフォルダに、上で用意したフォルダをドラッグアンドドロップしてください

1月10日の課題

1月10日の線を引く簡単なプログラム

import javax.swing.JPanel;
import java.awt.Graphics;

/**
 * 
 */

/**
 * @author siio
 *
 */
public class DrawPanel extends JPanel {

	public void drawLine(int x1, int y1, int x2, int y2){
		Graphics g = this.getGraphics();
		g.drawLine(x1, y1, x2, y2);
	}
 }
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

import javax.swing.JFrame;

/**
 * 
 */

/**
 * @author siio
 *
 */
public class SimpleDraw extends JFrame implements ActionListener,
		MouseListener, MouseMotionListener {
 

	int lastx, lasty, newx, newy;
	DrawPanel panel;
 

	/* (non-Javadoc)
	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
	 */
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

	}

	/* (non-Javadoc)
	 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
	 */
	public void mouseClicked(MouseEvent arg0) {
		// TODO Auto-generated method stub

	}

	/* (non-Javadoc)
	 * @see java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)
	 */
	public void mouseEntered(MouseEvent arg0) {
		// TODO Auto-generated method stub

	}

	/* (non-Javadoc)
	 * @see java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)
	 */
	public void mouseExited(MouseEvent arg0) {
		// TODO Auto-generated method stub

	}

	/* (non-Javadoc)
	 * @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
	 */
	public void mousePressed(MouseEvent arg0) {
		// TODO Auto-generated method stub
	 	lastx=arg0.getX();
	 	lasty=arg0.getY();
	}

	/* (non-Javadoc)
	 * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
	 */
	public void mouseReleased(MouseEvent arg0) {
		// TODO Auto-generated method stub

	}

	/* (non-Javadoc)
	 * @see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent)
	 */
	public void mouseDragged(MouseEvent arg0) {
		// TODO Auto-generated method stub
		newx=arg0.getX();
		newy=arg0.getY();
		panel.drawLine(lastx,lasty,newx,newy);
		lastx=newx;
		lasty=newy;
	}

 

	public void mouseMoved(MouseEvent arg0) {
		// TODO Auto-generated method stub

	}

	private void init() {
		this.setTitle("Simple Draw");
		this.setSize(300, 200);
		this.addMouseListener(this);
		this.addMouseMotionListener(this);
		panel=new DrawPanel();
		this.getContentPane().add(panel);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SimpleDraw frame=new SimpleDraw();
		frame.init();
	}

}

12月21日のマウスイベントのサンプル

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class SimpleDraw extends JFrame implements MouseListener, MouseMotionListener{

	SimpleDraw(String title) {
		setTitle(title);
		addMouseListener(this);
		addMouseMotionListener(this);
	}
	
	public void mouseClicked(MouseEvent e) {
		System.out.println("mouse clicked!");
	}
	public void mouseEntered(MouseEvent e) {
		System.out.println("mouse entered!");
	}
	public void mouseExited(MouseEvent e) {
		System.out.println("mouse exited!");
	}
	public void mousePressed(MouseEvent e) {
		System.out.println("mouse pressed!");
	}
	public void mouseReleased(MouseEvent e) {
		System.out.println("mouse released!");
	}
	public void mouseDragged(MouseEvent e) {
		System.out.println("mouse dragged!");
	}
	public void mouseMoved(MouseEvent e) {
		System.out.println("mouse moved!");
	}
	
	public static void main(String[] args) {
		SimpleDraw sample = new SimpleDraw("Drawing application");
		sample.setSize(400,300);
		sample.setVisible(true);
		sample.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
}

12月14日にやった演習13.2の回答例

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class JTextFieldSample extends JFrame implements ActionListener {
	JButton button, clearButton;
	JTextField textleft, textright;
	
	JTextFieldSample(String title) {
		setTitle(title);
		button = new JButton("left to right");
		clearButton = new JButton("clear");
		button.addActionListener(this);
		clearButton.addActionListener(this);
		
		textleft = new JTextField(10);
		textright = new JTextField(10);
		JPanel panel=new JPanel();
		panel.setLayout(new GridLayout(2,2));
		panel.add(textleft);
		panel.add(textright);
		panel.add(button);
		panel.add(clearButton);
		Container container=this.getContentPane();
		container.add(panel);
	}
	
	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==(button)) {
			textright.setText(textleft.getText());
			textleft.setText("");
		}else if(e.getSource()==(clearButton)) {
			textright.setText("");
		}
	}
	
	public static void main(String[] args) {
		JTextFieldSample sample = new JTextFieldSample("JTextFieldSample");
		sample.pack();
		sample.setVisible(true);
		sample.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

11月30日に説明したURL読み込みの例

import java.io.*;
import java.net.*;

public class URLTest {
	public static void main (String argv[]) {
		try {
			URL targetURL = new URL("http://www.ocha.ac.jp/");
			InputStream istream = targetURL.openStream();
			BufferedReader breader = new BufferedReader
			(new InputStreamReader(istream, "JISAutoDetect"));
		
			String line;
			while((line=breader.readLine()) != null) System.out.println(line);
		
		
		}catch(IOException e) {
			System.out.println("error...");
		}
	}
}

11月2日の宿題

Class Osaifuを作り、以下のクラスメソッドが
java Osaifuコマンドで動くようにせよ。

	public static void main(String argv[]) {
		Osaifu saifu1 = new Osaifu(1000);//インスタンスを作る
		//最初の保持金額を1000円にする
		Osaifu saifu2 = new Osaifu(500);//インスタンスを作る
		//最初の保持金額を500円にする
		saifu2.in(saifu1.out(200));//saifu1からsaifu2に200円移す
		saifu1.print();//現在の金額を表示
		saifu2.print();//現在の金額を表示
	}

11月2日の解答例

public class Point3D {
	private int x, y, z;
	void putx( int ptx) { x=ptx; }
	void puty(int pty) { y=pty; }
	void putz(int ptz) { z=ptz; }
	int getx() { return x; }
	int gety() { return y; }
	int getz() { return z; }
	
	Point3D(int ptx, int pty, int ptz) {
		//x=ptx; y=pty; z=ptz; 
		this.putx(ptx); this.puty(pty); this.putz(ptz);
	}
	
	//指定された点との距離を求めるインスタンスメソッド
	double distance(int ptx, int pty, int ptz) {
		double d;
		int dx = ptx - x;
		int dy = pty - y;
		int dz = ptz - z;
		d =   Math.sqrt(dx * dx + dy * dy + dz * dz);
		return d;
	}
	//指定された点との距離を求めるインスタンスメソッド
	double distance(Point3D pt) {
		return this.distance(pt.getx(), pt.gety(), pt.getz());
	}
//Point3Dクラスに以下のクラスメソッドを追加して、
//これがjava Point3Dコマンドで動くようにせよ。
	public static void main(String argv[]) {
		Point3D pt1 = new Point3D(1,2,3);
		Point3D pt2 = new Point3D(30,20,10);
		System.out.println(pt1.distance(pt2)); //pt1,pt2の距離を表示
	}
}
	

ヒューマンインタフェース 2006年前期

授業で使っているプレゼン資料

  1. 人とモノとのインタフェース http://is.ocha.ac.jp/~siio/lecture/humaninterface/everydaythings.pdf
  2. グラフィカルユーザインタフェース(GUI) http://is.ocha.ac.jp/~siio/lecture/humaninterface/gui.pdf

レポート課題

(1-1) 以下の日用品を1つ以上例示せよ

(1-2) なぜ(1-1)のような事態になったのかを、分析せよ

制約、マッピング、Affordance、モデル、複雑性、エラー対策、状態がビジュアルかどうか、標準化の問題か、などを議論せよ。

(2) グラフィカルユーザインタフェース(GUI)をキャラクターベースのインタフェース(CUI)と比較して,以下のことを述べよ.

(2-1)CUIに対するGUIの長所を,「初心者、子供、直接操作、アフォーダンス、デスクトップメタファ、WYSIWYG」などの言葉を使って説明せよ.

(2-2)CUIに対するGUIの短所を,「熟達者、キーボードと指示装置の併用、計算機資源、パイプ、正規表現、コマンドスクリプト言語」などの言葉を使って説明せよ.


このページについてのお問い合わせはsiio@is.ocha.ac.jpまで。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-10-22 (金) 23:27:11