Lecture2015
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*マルチメディアプログラミング実習 2015年度後期 [#s1ac4707]
**最終課題提出状況 [#idfeb7b4]
提出いただいたファイル名、ファイルサイズ、提出日時、は以...
複数提出いただいた場合は、一番新しい日付のものを残して、...
提出したのにここに載っていないとか、提出した最終ファイル...
大至急連絡ください。
(?マークはシステムの不具合です。無視してください)
| サイズ | 月 | 日 | 時間| ファイル名|
| 1835739 |1| 28| 15:08 | 1420501atsukimaya16.zip|
| 1038518 |1| 28| 21:35 | 1420502arakawa.zip|
| 5558 |1| 28| 16:35 | 1420503ikemotohiromi.zip|
| 309719 |1| 28| 11:23 | 1420504ishiimoekolast02.zip|
| 570428 |1| 28| 16:35 | 1420505ChiakiISHIO_SimpleDraw...
| 6558333 |1| 28| 19:15 | 1420506imaimiki.zip|
| 1110204 |1| 28| 11:27 | 1420507iwami2.zip|
| 2378021 |1| 27| 18:02 | 1420508uedashiori01.zip|
| 1492584 |1| 28| 13:23 | 1420509UrushiharaRino.zip|
| 2825291 |1| 27| 19:20 | 1420510 ooshimaharuna.zip|
| 193209 |1| 25| 15:34 | 1420511otawaranana.zip|
| 507482 |1| 28| 13:18 | 1420512ogasawaramoe14.zip|
| 2335590 |1| 28| 21:37 | 1420513ozakikana01.zip|
| 157050 |1| 27| 21:12 | 1420514osanaiharuka14.zip|
| 1500371 |1| 28| 21:35 | 1420515ozawaayumi16.zip|
| 1478092 |1| 28| 23:22 | 1420516oniiwaakari13.zip|
| 143831 |1| 28| 19:17 | 1420517OmataMariko.zip|
| 3122282 |1| 28| 23:56 | 1420518Kitanoshizuka14.zip|
| 365689 |1| 28| 21:49 | 1420519kuboayuno.zip|
| 818401 | 1 |27 |15:16 |1420520sasa.zip|
| 267739 |1| 22| 18:14 | 1420521satosunao.zip|
| 1642918 |1| 28| 23:53 | 1420522shiinaharuka12.zip|
| 494360 |1| 26| 15:31 | 1420523shinmurayori14.zip|
| 227052 |1| 22| 18:22 | 1420525chibayukiko_lasttask.z...
| 324304 |1| 28| 15:25 | 1420526choukaei02.zip|
| 12137824 |1| 28| 17:50 | 1420527tsukuisae17.zip|
| 169900 |1| 28| 16:57 | 1420528tsutsuiminamilast1.zip|
| 429414 |1| 28| 16:55 | 1420529tsuruayako15.zip|
| 530825 |1| 28| 23:23 | 1420530teramachisakiko02.zip|
| 166777 |1| 28| 16:31 | 1420531nemotoyuka11.zip|
| 266367 |1| 27| 07:21 | 1420532hiragaikuko12.zip|
| 131816 |1| 28| 22:22 | 1420533furukawa.zip|
| 83194 |1| 25| 17:28 | 1420534murayamayuri14.zip|
| 671578 |1| 27| 15:50 | 1420535yasueshiori.zip|
| 1076125 |1| 27| 20:27 | 1420536yamashitarisa.zip|
| 6699661 |1| 28| 12:59 | 1420537YukiYamada.zip|
| 342841 |1| 28| 22:57 | 1420538yamamotoaoi 2.zip|
| 446222 |1| 27| 12:54 | 1420539wakamiyaarisa_last.zip|
| 135096 |1| 25| 13:22 | 1420540WatanabeHiromi01.zip|
|143210 |1 |28| 17:05 | 1120525suzukitomoe01.zip|
**欠席回数表 [#aff8c8b7]
欠席回数が多くて単位が出ない人は、幸いいらっしゃらないよ...
欠席回数は成績に反映しますので、
間違いがあったら至急連絡ください。
|学籍番号|10月8日|10月15日|10月22日|10月29日|11月26日|12...
|1120525|0|0|0|0|0|0|0|0|0|1|0|1|
|1420501|0|0|0|0|0|0|0|1|0|0|0|1|
|1420502|0|0|0|0|0|0|0|0|0|1|1|2|
|1420503|0|0|0|0|0|0|0|0|0|0|0|0|
|1420504|0|0|0|0|0|0|0|0|0|0|0|0|
|1420505|0|0|0|0|0|0|0|0|0|0|0|0|
|1420506|0|0|0|0|0|0|0|0|0|0|0|0|
|1420507|0|0|0|0|0|0|0|0|1|0|0|1|
|1420508|0|0|0|0|0|0|0|0|0|0|0|0|
|1420509|0|0|0|0|0|0|0|0|0|0|0|0|
|1420510|0|0|0|0|0|0|0|0|0|0|0|0|
|1420511|0|0|0|0|0|0|0|0|0|0|0|0|
|1420512|0|0|0|0|0|0|0|0|0|0|0|0|
|1420513|0|0|0|0|0|0|0|0|0|0|0|0|
|1420514|0|0|0|0|1|0|0|0|0|0|0|1|
|1420515|0|0|0|0|0|0|0|0|0|0|0|0|
|1420516|0|0|0|0|0|0|0|0|1|0|0|1|
|1420517|0|0|0|0|0|0|0|0|0|0|0|0|
|1420518|0|0|0|0|0|0|0|0|0|0|0|0|
|1420519|0|0|0|0|0|0|0|0|0|1|0|1|
|1420520|0|0|0|0|0|0|0|0|0|0|0|0|
|1420521|0|1|0|0|0|0|0|0|0|0|0|1|
|1420522|0|0|0|0|0|0|0|1|1|0|0|2|
|1420523|0|0|0|0|0|0|0|0|0|0|0|0|
|1420525|0|0|0|0|0|0|0|0|0|0|0|0|
|1420526|0|0|0|0|0|0|0|0|0|0|0|0|
|1420527|0|0|0|0|0|0|0|0|0|0|0|0|
|1420528|0|0|0|1|0|0|0|0|0|0|0|1|
|1420529|0|0|0|0|0|0|0|0|1|1|1|3|
|1420530|0|0|0|0|0|0|0|0|0|0|0|0|
|1420531|0|0|0|1|0|0|0|1|0|1|0|3|
|1420532|0|0|0|0|0|0|0|0|1|0|0|1|
|1420533|0|0|0|0|0|0|1|0|1|1|0|3|
|1420534|0|0|0|0|0|0|0|0|0|0|0|0|
|1420535|0|0|0|0|0|0|0|0|0|0|0|0|
|1420536|0|0|0|0|0|0|0|0|0|0|0|0|
|1420537|0|0|0|0|0|0|0|0|0|0|0|0|
|1420538|0|0|0|0|0|0|0|1|0|0|0|1|
|1420539|0|0|1|0|0|0|0|0|0|0|0|1|
|1420540|0|0|0|0|0|0|0|0|0|0|0|0|
**講義予定 [#n14a0f9e]
|月日|内容|
|10/1|第1,2章|
|10/8||
|10/15||
|10/22||
|10/29||
|11/5|TOEFL試験のため休講|
|11/12|椎尾海外出張のため休講|
|11/19|椎尾学会出張のため休講|
|11/26||
|12/3|椎尾学会出張のため休講|
|12/10||
|12/17||
|12/24||
|1/7||
|1/14||
|1/21||
|1/28|試験期間のため休講|
** 出来上がったプログラムの提出方法 [#a6c8db15]
- フォルダを作ってその中にjavaファイルとclassファイル
//と、取扱説明書ファイルと、それ以外に必要なファイルがも...
を入れてください。
//フォルダの中のclassファイルをダブルクリックしたらプログ...
-このフォルダに名前を付けてください。フォルダの名前は、「...
-このフォルダを圧縮してください
--フォルダを選択してファイルメニューから圧縮を選択します
-圧縮したファイルを以下の手順で
/home/isstaff/siio/Public/Drop Box/.
に提出してください。ターミナル.appからなら
cp 123456siioitiro.zip /home/isstaff/siio/Public/Drop\ Box
としてください。ファインダーからなら、メニューから「移動...
以下のように入力して、移動ボタンを押して、そこに現れるド...
http://is.ocha.ac.jp/~siio/gyazo/dropbox.png
--書き込み専用なので確認できないけどokですかという意味の...
-レポート提出用フォルダは書き込み専用で見ることができませ...
-授業中でしたら、[[ココを見ると:http://is.ocha.ac.jp/~sii...
-同じ名前のフォルダを投げ込むと、エラーになります。という...
*2016年1月21日 [#e4528cee]
現在完成したところのプロフラムの一式を、
フォルダに入れて、出席番号+ローマ字の名前にして、圧縮し...
*2016年1月14日 [#g470d654]
現在完成したところのプロフラムの一式を、
フォルダに入れて、出席番号+ローマ字の名前にして、圧縮し...
*2016年1月7日 [#ld75c2cd]
*** 線を引く簡単なプログラム [#m106b6a2]
JPanelのサブクラスを作りました。
import javax.swing.JPanel;
import java.awt.Graphics;
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);
}
}
こちらはメインのプログラム。JFrameのサブクラスで、これに...
リスナーになっているので、こちらでマウスなどのイベントを...
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
public class SimpleDraw extends JFrame implements MouseM...
int lastx=0, lasty=0, newx, newy;
DrawPanel panel;
public void mouseMoved(MouseEvent arg0) {
}
public void mouseDragged(MouseEvent arg0) {
newx=arg0.getX();
newy=arg0.getY();
panel.drawLine(lastx,lasty,newx,newy);
lastx=newx;
lasty=newy;
}
private void init() {
this.setTitle("Simple Draw");
this.setSize(300, 200);
this.addMouseMotionListener(this);
panel=new DrawPanel();
this.getContentPane().add(panel);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
SimpleDraw frame=new SimpleDraw();
frame.init();
}
}
***Eclipseを使ってみよう [#b72bb1ca]
http://gyazo.com/4383db7fb81f9eacbf5cc959ff77a33d.png
-Eclipseの警告を消す方法
private static final long serialVersionUID = 42L;
という変数を定義しておきます。
***一筆書き解消 [#v227383f]
上で紹介したSimple Drawを、一筆書きにならないように変更し...
-----------------------------------------------
*マルチメディアプログラミングの最終課題 [#yff8f924]
-課題:お絵描きプログラムを作成してさらに取扱説明書を作成...
--この課題のヒントは SimpleDraw をみてください。
** 提出課題として最低やってほしいこと [#p153fadb]
-ペンの太さをメニューで変えられるようにしてください
-ペンの色をメニューとカラーパレットで変えられるようにして...
-消しゴム機能を追加してください
-ウィンドウの大きさを変えても絵が消えてしまわないようにする
(ダブルバッファを使う)
** 機能拡張:以下のことができれば加点します [#kbc51d8b]
-絵や写真のファイルを取り込めるようにする
-いろいろな効果のペンを作る(たとえばペンの動きに従って文...
-絵をファイルへ書き出す機能を作る
-他の絵データをスタンプのように押す機能
-コピーアンドペースト
-メニューバーだけでなく、スライダ、ボタン、別ウィンドウ(...
-そのほか、世の中のお絵描きプログラムにありそうな機能を実...
機能拡張の詳細はSimpleDrawの
-http://is.ocha.ac.jp/~siio/index.php?SimpleDraw#extra
を見てください。SimpleDrawのページでは、
-機能の拡充
-使いやすさの追求
の2通りの拡張を書いてあります。どちらの方針で進めていただ...
説明書に、工夫したところを書いておいてください。
** 取扱説明書の作り方 [#k2d45bde]
-ApplicationsからMicrosoft Office 2011/Microsoft Wordもし...
-せっかくですので作った機能はぜんぶここで説明してください...
-スクリーンキャプチャした図も入れてください。図は次のよう...
--スクリーンキャプチャしたいところで、コマンド(リンゴマ...
--もしくは、コマンド(リンゴマーク)+シフト+4を押すとマ...
--もしくは、コマンド(リンゴマーク)+シフト+4を押し、さ...
--以上の操作で、デスクトップにピクチャファイルができます...
--もしくは、デスクトップのピクチャファイルをダブルクリッ...
-Control キーを押しながらキーボードショートカットを押すと...
-がんばったところ、大変だったところなどを書いていただいて...
** 出来上がったプログラムの提出方法 [#lae68c17]
- フォルダを作ってその中にjavaファイルとclassファイルと、...
-このフォルダに名前を付けてください。フォルダの名前は、「...
-このフォルダを圧縮してください
-このフォルダを圧縮してください
-圧縮したファイルを
/home/isstaff/siio/Public/Drop Box/.
に提出してください。ターミナル.appからなら
cp 123456siioitiro.zip /home/isstaff/siio/Public/Drop\ Box
としてください。ファインダーからなら、メニューから「移動...
以下のように入力して、移動ボタンを押して、そこに現れるド...
http://is.ocha.ac.jp/~siio/gyazo/dropbox.png
--書き込み専用なので確認できないけどokですかという意味の...
-レポート提出用フォルダは書き込み専用で見ることができませ...
-同じ名前のフォルダを投げ込むと、エラーになります。という...
** 締切 [#d1fb9096]
-締め切りは1月28日11:59pmとします
--この日までに提出してください
//--どうしてもそのあともがんばりたい人は1月31日の11:59pm...
//--可能な限り差し替えます(見落とす可能性がありますので...
**昨年度の優秀作品例 [#t40daf10]
-http://is.ocha.ac.jp/~siio/pdf/2013/manual1.pdf
-http://is.ocha.ac.jp/~siio/pdf/2013/manual2.pdf
-http://is.ocha.ac.jp/~siio/pdf/2013/manual3.pdf
-http://is.ocha.ac.jp/~siio/pdf/2013/manual4.pdf
-http://is.ocha.ac.jp/~siio/pdf/2013/manual5.pdf
----------------
*2015年12月24日 [#j5af7f41]
*** 簡単なアニメーション [#gbac3acd]
-まずはなにもしないウィンドウを出します
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class SimpleAnime extends JFrame {
private void init() {
this.setTitle("SimpleAnime");
this.setSize(300,200);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
SimpleAnime frame = new SimpleAnime();
frame.init();
}
}
-次に動くボールを出します
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class SimpleAnime extends JFrame {
JPanel panel;
Graphics g;
private void init() {
this.setTitle("SimpleAnime");
this.setSize(300,200);
panel = new JPanel();
this.getContentPane().add(panel);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
g=panel.getGraphics();
g.setColor(Color.blue);
int x=0, xdelta=10;
while(true) {
g.fillOval(x,80,50,50);
try{Thread.sleep(50);}catch(Exception e){}
g.clearRect(x, 80, 52,52);
x+=xdelta;
if(x>250) xdelta=-10;
if(x<0) xdelta=10;
}
}
public static void main(String[] args) {
SimpleAnime frame = new SimpleAnime();
frame.init();
}
}
http://gyazo.com/12d1f047af8d4f87f7199c8a7db66080.png
-マルチスレッド化する
上記のプログラムでは、main()で、frame.init()したあと、こ...
アニメーションだけをするなら、これでも良いのですが、他に...
以下のように、別のインスタンスを別スレッドで動かします。...
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.lang.Thread;
class Animator implements Runnable {
Graphics g;
public void setGraphics(Graphics animeG) {
g=animeG;
}
public void run() {
int x=0, xdelta=10;
while(true) {
g.fillOval(x,80,50,50);
try{Thread.sleep(50);}catch(Exception e){}
g.clearRect(x, 80, 52,52);
x+=xdelta;
if(x>250) xdelta=-10;
if(x<0) xdelta=10;
}
}
}
class SimpleAnime extends JFrame {
JPanel panel;
Graphics g;
Animator animator;
private void init() {
animator=new Animator();
this.setTitle("SimpleAnime");
this.setSize(300,200);
panel = new JPanel();
this.getContentPane().add(panel);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
g=panel.getGraphics();
g.setColor(Color.blue);
animator.setGraphics(g);
new Thread(animator).start();
}
public static void main(String[] args) {
SimpleAnime frame = new SimpleAnime();
frame.init();
for(int i=0;;i++) {
System.out.println(i);
try {Thread.sleep(500);}catch(Exception e){}
}
}
}
-アニメーションボールの設定ができるアプリケーションを作っ...
//こういうのを作ってほしい
//
//http://is.ocha.ac.jp/~siio/index.php?plugin=attach&pcmd...
ヒント:上のアニメーションのプログラムに、メニューを取り...
action Performedでメニューからのイベントを受け取れば良い...
メニューの動きは、プログラム本来の動きと並列に動いてくれ...
上のアニメーションのようなアニメーション以外何もできない...
メニューは動いてくれます。
ヒント: action Performed ではこうしたら良い
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if(command=="red") g.setColor(Color.red);
if(command=="blue") g.setColor(Color.blue);
ヒント:メニューはSimple Animeでつくって、action listener...
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.lang.Thread;
class Animator implements Runnable, ActionListener {
略
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if(command !=null) {
System.out.println(command);
}
if(command=="red") g.setColor(Color.red);
if(command=="blue") g.setColor(Color.blue);
if(command=="yellow") g.setColor(Color.yellow);
if(command=="fast") xdelta=30;
if(command=="slow") xdelta=5;
}
略
}
class SimpleAnime extends JFrame {
略
private void makeMenu() {
JMenuBar menubar = new JMenuBar();
JMenu menu = new JMenu("color");
JMenu menuSpeed = new JMenu("speed");
JMenuItem item1 = new JMenuItem("red");
item1.addActionListener(animator);
item1.setActionCommand("red");
JMenuItem item2 = new JMenuItem("blue");
item2.addActionListener(animator);
item2.setActionCommand("blue");
JMenuItem item3 = new JMenuItem("yellow");
item3.addActionListener(animator);
item3.setActionCommand("yellow");
menu.add(item1);
menu.add(item2);
menu.add(item3);
JMenuItem item4 = new JMenuItem("fast");
item4.addActionListener(animator);
item4.setActionCommand("fast");
JMenuItem item5 = new JMenuItem("slow");
item5.addActionListener(animator);
item5.setActionCommand("slow");
menuSpeed.add(item4);
menuSpeed.add(item5);
menubar.add(menu);
menubar.add(menuSpeed);
this.setJMenuBar(menubar);
}
略
}
-ボールの色と早さをメニューで指定する(解答編)
上記のプログラムにメニューを追加して、
ボールの色と速さをメニューで指定するようにしました。
メニューはメインのJFrameインスタンスで作ってこれに貼りつ...
Action Listenerは、別スレッドで動いているAnimatorクラスの...
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.lang.Thread;
class Animator implements Runnable, ActionListener {
Graphics g;
int xdelta =5;
public void setGraphics(Graphics animeG) {
g=animeG;
}
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if(command !=null) {
System.out.println(command);
}
if(command=="red") g.setColor(Color.red);
if(command=="blue") g.setColor(Color.blue);
if(command=="yellow") g.setColor(Color.yellow);
if(command=="fast") xdelta=30;
if(command=="slow") xdelta=5;
}
public void run() {
int x=0;
while(true) {
g.fillOval(x,80,50,50);
try{Thread.sleep(50);}catch(Exception e){}
g.clearRect(x, 80, 52,52);
x+=xdelta;
if(x>250) xdelta=-xdelta;
if(x<0) xdelta=-xdelta;
}
}
}
class SimpleAnime extends JFrame {
JPanel panel;
Graphics g;
Animator animator;
private void makeMenu() {
JMenuBar menubar = new JMenuBar();
JMenu menu = new JMenu("color");
JMenu menuSpeed = new JMenu("speed");
JMenuItem item1 = new JMenuItem("red");
item1.addActionListener(animator);
item1.setActionCommand("red");
JMenuItem item2 = new JMenuItem("blue");
item2.addActionListener(animator);
item2.setActionCommand("blue");
JMenuItem item3 = new JMenuItem("yellow");
item3.addActionListener(animator);
item3.setActionCommand("yellow");
menu.add(item1);
menu.add(item2);
menu.add(item3);
JMenuItem item4 = new JMenuItem("fast");
item4.addActionListener(animator);
item4.setActionCommand("fast");
JMenuItem item5 = new JMenuItem("slow");
item5.addActionListener(animator);
item5.setActionCommand("slow");
menuSpeed.add(item4);
menuSpeed.add(item5);
menubar.add(menu);
menubar.add(menuSpeed);
this.setJMenuBar(menubar);
}
private void init() {
animator = new Animator();
this.setTitle("SimpleAnime");
this.setSize(300,200);
this.makeMenu();
panel = new JPanel();
this.getContentPane().add(panel);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
g=panel.getGraphics();
g.setColor(Color.blue);
animator.setGraphics(g);
new Thread(animator).start();
}
public static void main(String[] args) {
SimpleAnime frame = new SimpleAnime();
frame.init();
for(int i=0;;i++) {
System.out.println(i);
try {Thread.sleep(500);}catch(Exception e){}
}
}
}
http://gyazo.com/d5db8ca6fa153520e94ee7d2b7a93915.png
-この先改良すべきこと [#u99ec852]
アニメーションの途中で、ボールがちらつくことがあります。
ボールの場所を矩形で消して、新しいボールを描いているので、
その途中の作業が見えてしまうからです。
これを無くすには、ダブルバッファの手法を用います。
すなわち、描画する面をもう一枚用意して、
そちらに描画し、
描画が終わったところで、一気に更新する方法です。
ダブルバッファの手法は、授業の最終課題である「お絵かきプ...
/////////////////
***Mac OS X [#pef81779]
How2MacOSXProgramming を見てください
***iPhone [#bbd93343]
How2iPhoneProgramming を見てください
*2015年12月17日 [#h4a54ab4]
**宿題提出 [#geafdf5f]
プログラム13.1のようにボタンを配置して、それぞれを押すと...
このプログラムの.java, classファイルをまとめて、出席番号...
**第13章 様々なコンポーネントとレイアウト [#naf0bc4c]
***プログラム13.1の説明図 [#zd72b845]
http://gyazo.com/649bbe400f96c8c31923bcf7e5aebbd4.png
***13.2節を読んで,プログラム13.2を実行させてください [#b...
ボタンが一つしかないプログラムなので、ActionPerformedの中...
ボタン種類のチェックを省略してしまっているところが特徴で...
***演習13.1をやってください [#b44ad366]
こんなのをつくってください。
http://gyazo.com/999f1e766551a994186cc3d159bde0bf.png
BorderLayoutでもできるようですが、私はGridLayour使ってみ...
panel.setLayout(new GridLayout(2,2));
panel.add(textleft);
panel.add(textright);
panel.add(button);
panel.add(clearbutton);
ボタンが複数になるので、ActionPerformedの中で、ボタンを区...
解答例
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class JTextFieldSample extends JFrame implements ...
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("JTextF...
sample.pack();
sample.setVisible(true);
sample.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
***どのボタンからのイベントであるかを識別する方法 [#o0fce...
-プログラム12.3では
--ボタンへの参照を、action Performedから参照できる変数に...
--action Performedの中で、e.get Source()してButtonのイン...
-プログラム12.4では、
--準備として button.set Action(button.get Text());でボタ...
-- action Performedの中で e.get Action Command()でアクシ...
-ということで以下のようなことも可能
--acttion Performedの中で、get Source()してボタンを得る
--そのボタンからget Textしてボタンの文字列を得て文字比較...
--ただし、get Sourceで得られるのはボタンの親クラスなのでB...
--以下をaction Performedのなかで試してみよう
System.out.println((JButton)(e.getSource()).getText());
***13.5節を読んで,プログラム13.5を実行してください [#m16...
http://gyazo.com/dd4e103c011682b3a78b9ed0c8d5134b.png
http://gyazo.com/4755cce7280963b32050db455d265cc1.png
メニューアイテムにcommandという情報をつけて、ActionPerfor...
***演習13.2をやってください(メニュー項目は何でも良いです...
//演習ができそうにないという人は、飛ばして、次に進んでく...
http://gyazo.com/2d9c3b6534e7b87fcd3ec22be00d5fed.png
***13.6節を読んで,プログラム13.6を実行してください [#b8b...
教科書203ページのプログラム13.6の5行めのところに、
... implements ActionListener6: {
とありますが、これは、
... implements ActionListener {
の間違いのようです。
**終章 おまけ [#d58ba3ba]
***マウスイベント [#uf7f6e68]
マウスイベントを受け取るには、Mouse ListenerやMouse Motio...
以下のようにするとイベントをうけとれるます。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class MouseTest extends JFrame implements MouseLi...
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) {
MouseTest test = new MouseTest();
test.setTitle("MouseTest");
test.addMouseListener(test);
test.addMouseMotionListener(test);
test.setSize(400,300);
test.setVisible(true);
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
***サウンドファイルを再生する [#fc02c68a]
-以下のファイルをダウンロードしてください。
http://is.ocha.ac.jp/~siio/lecture/Sounds/Ping.aiff
(他にも、Basso.aiff Frog.aiff Hero.aiff Pop.aiff Submarin...
Blow.aiff Funk.aiff Morse.aiff Purr.aiff Tink.aiff
Bottle.aiff Glass.aiff Ping.aiff Sosumi.aiff
を置いておきました)
これを再生するプログラムを作ってみましょう。以下で再生で...
import java.io.*;
import javax.sound.sampled.*;
public class AudioPlay {
public static void main(String[] args) {
try{
File audioFile = new File("Ping.aiff");
AudioFormat format = AudioSystem.getAudioFi...
DataLine.Info info = new DataLine.Info(Clip....
Clip clip = (Clip)AudioSystem.getLine(info);
clip.open(AudioSystem.getAudioInputStream(audioFi...
clip.start();
clip.drain();
clip.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
***他の環境でのGUIプログラミングの例 [#g3af3031]
***X11 [#s742a4fc]
以下の内容の新しいファイル,buttontest.cを作ってください.
printfの逆スラッシュが正しくコピペできてないかもしれない...
入力が面倒なら,添付ファイルの
[[buttontest.c:http://is.ocha.ac.jp/~siio/index.php?plugi...
をダウンロードしてください.
#include <X11/Xlib.h>
#include <stdio.h>
int main (){
Display *display = XOpenDisplay (NULL);
XEvent event;
Window window = XCreateSimpleWindow(display, DefaultRoo...
XSelectInput(display,window,KeyPressMask | ButtonPressM...
XMapWindow(display, window);
XFlush(display);
while(1) {
XNextEvent(display,&event);
switch (event.type) {
case KeyPress:
printf("key\n");
break;
case ButtonPress:
printf("button down\n");
printf("button\n");
break;
case ButtonRelease:
printf("button up\n");
break;
}
}
return 0;
}
以下のコマンドでコンパイルしてください.
cc -L/usr/X11R6/lib -I/usr/X11R6/include buttontest.c -l...
出来上がったファイルを,./a.outで実行してください.
//////////////////////////////
*2015年12月10日 [#q0f74076]
**宿題提出 [#yd098ee1]
引数のURLをファイルにするプログラムと、
また、cat.jpgのファイル取得でまとめて読むことでどれくらい...
提出してください。
これらのjava, class, レポートのファイルをまとめて、出席番...
**第12章 Swing [#x23dde25]
***とても簡単なウィンドウ [#d42e1eab]
import javax.swing.JFrame;
public class SimpleWindow {
public static void main(String argv[]) {
JFrame f = new JFrame("私が作った最初の窓...
f.setSize(200,100);
f.setDefaultCloseOperation(JFrame.EXIT_ON...
f.setVisible(true);
}
}
*** JFrameを継承するプログラミング [#na0305a8]
import javax.swing.JFrame;
public class SimpleWindow extends JFrame {
public void initialize () {
this.setTitle("私が作った最初の窓");
this.setSize(200,100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main (String argv[]) {
SimpleWindow sw = new SimpleWindow();
sw.initialize();
}
}
***ラベルを表示するウィンドウ [#a53f05f8]
プログラム12.1を参考にして、上記の、継承を使ったプログラ...
Hello!という文字を出してみよう。
http://gyazo.com/c6efe47de19436f7564660377fe8b98c.png
解答例:
import javax.swing.*;
import java.awt.*;
public class SimpleWindow extends JFrame {
public void initialize () {
this.setTitle("私が作った最初の窓");
JLabel label = new JLabel("Hello!");
Container container = this.getContentPane();
container.add(label);
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String argv[]) {
SimpleWindow sw = new SimpleWindow();
sw.initialize();
}
}
***ボタンを2個表示するウィンドウ [#ibff2586]
プログラム12.2をみてください。
getContentPane()で得られたContainerに直接ボタンを貼付ける...
貼付けられるのは一つのボタンだけのようです。
パネルに2個のボタンを貼付け、それをContainerに貼付けるこ...
http://gyazo.com/03c28df2419065241b8736b7b69d7fd3.png
プログラム12.2を参考にして、継承を使ったプログラムによる...
2個のボタンを出してみよう。
http://gyazo.com/4c3086ae9b6b5434d2ea741369f731c5.png
解答例:
import javax.swing.*;
import java.awt.*;
public class SimpleButton extends JFrame {
public void initialize () {
this.setTitle("私が作った最初の窓");
JPanel panel = new JPanel();
JButton button1 = new JButton("button1");
JButton button2 = new JButton("button2");
panel.add(button1);
panel.add(button2);
Container container = this.getContentPane();
container.add(panel);
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String argv[]) {
SimpleButton sw = new SimpleButton();
sw.initialize();
}
}
このプログラムでは,ボタンを押しても何もおこりません.
ボタンが押されたイベントを受け取るためには,
+ActionListenerをimplementしたクラスを作る
+そのインスタンスを作る
+これをボタンにaddActionListener()で登録する
必要があります.
プログラム12.3を参考に,ボタンを押したらprintlnで次のよう...
http://gyazo.com/67d27d0588f4dd5d11410e1107165994.png
ヒント(最初の6行です)
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SimpleButton extends JFrame implements Acti...
JButton button1, button2;
public void initialize () {
解答例
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SimpleButton extends JFrame implements Acti...
JButton button1, button2;
public void initialize () {
this.setTitle("私が作った最初の窓");
JPanel panel = new JPanel();
button1 = new JButton("button1");
button2 = new JButton("button2");
button1.addActionListener(this);
button2.addActionListener(this);
panel.add(button1);
panel.add(button2);
Container container = this.getContentPane();
container.add(panel);
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed (ActionEvent e) {
if(e.getSource()==button1)
System.out.println("Hello");
else
System.out.println("Goodbye");
}
public static void main(String argv[]) {
SimpleButton sw = new SimpleButton();
sw.initialize();
}
}
***宿題:プログラム13.1のようにボタンを配置して、それぞれ...
まずは、プログラム12.4を見て、上記のプログラムを拡張して5...
なお、以下のようにすると、ボタンの名前を印刷することがで...
public void actionPerformed(ActionEvent e){
System.out.println(((JButton)e.getSource...
}
***どのボタンからのイベントであるかを識別する方法 [#d97f1...
-プログラム12.3では
--ボタンへの参照を、action Performedから参照できる変数に...
--action Performedの中で、e.get Source()してButtonのイン...
-プログラム12.4では、
--準備として button.set Action(button.get Text());でボタ...
-- action Performedの中で e.get Action Command()でアクシ...
-ということで以下のようなことも可能
--acttion Performedの中で、get Source()してボタンを得る
--そのボタンからget Textしてボタンの文字列を得て文字比較...
--ただし、get Sourceで得られるのはボタンの親クラスなのでB...
--以下をaction Performedのなかで試してみよう
System.out.println((JButton)(e.getSource()).getText());
*2015年11月26日 [#na589bf9]
**第11章 入出力 [#pf2ec256]
***整数を出力する例 [#y13a8e76]
import java.io.*;
public class DoutTest {
public static void main (String[] args) {
try {
FileOutputStream fout = new FileOutputStream("dout.da...
DataOutputStream dout = new DataOutputStream(fout);
dout.writeInt(100);
dout.close();
}catch (Exception e) {
System.out.println(e);
}
}
}
これでdout.datという名前のファイルができあがるはずです。 ...
od -h dout.dat
または
hexdump dout.dat
してみてください
e100:java siio$ hexdump dout.dat
0000000 00 00 00 64
0000004
***整数を入出力する例 [#if2620ba]
import java.io.*;
public class DoutTest {
public static void main (String[] args) {
try {
FileOutputStream fout = new FileOutputStream("dout.da...
DataOutputStream dout = new DataOutputStream(fout);
dout.writeInt(100);
dout.close();
FileInputStream finput = new FileInputStream("dout.da...
DataInputStream dinput = new DataInputStream(finput);
System.out.println(dinput.readInt());
dinput.close();
}catch (Exception e) {
System.out.println(e);
}
}
}
***プログラム11.3をやってみてください [#ze73dfb4]
作ったファイルを
od -h
または
hexdump
してみてください
http://gyazo.com/74c061dfe2fcd6b72885878f867c78ba.png
import java.io.*;
public class PrintWriterTest{
public static void main(String[] args) {
try {
//writer.txtというファイルを作って文字を書き込む
FileWriter fwriter = new FileWriter("writer.txt");
PrintWriter pwriter = new PrintWriter(fwriter);
pwriter.println(2006);
pwriter.println("Java教科書");
//fwriter.write("Java教科書");
pwriter.close();
}
catch (IOException e) {
System.out.println(e);
}
}
}
つぎに、プログラム11.4を参考にして、
このPrint Write Testに書き足して、
書き込んだデータを読み出して画面に表示するプログラムを作...
ヒント:
import java.io.*;
public class PrintWriterTest{
public static void main(String[] args) {
try {
//writer.txtというファイルを作って文字を書き込む
FileWriter fwriter = new FileWriter("writer.txt");
PrintWriter pwriter = new PrintWriter(fwriter);
pwriter.println(2006);
pwriter.println("Java教科書");
//fwriter.write("Java教科書");
pwriter.close();
ここに書き足す
}
catch (IOException e) {
System.out.println(e);
}
}
}
***文字ストリームをファイルに書いて読み込むプログラム [#v...
import java.io.*;
public class PrintWriterTest{
public static void main(String[] args) {
try {
//writer.txtというファイルを作って文字を書き込む
FileWriter fwriter = new FileWriter("writer.txt");
PrintWriter pwriter = new PrintWriter(fwriter);
pwriter.println("java 教科書" + 2001 );
pwriter.close();
//writer.txtのファイルの中身をSystem.out.printlnで表示...
FileReader freader = new FileReader("writer.txt");
BufferedReader breader = new BufferedReader(freader);
String tmp;
while( (tmp=breader.readLine() ) != null) {
System.out.println(tmp);
}
breader.close();
}
catch (IOException e) {
System.out.println(e);
}
}
}
***プログラム11.5をやってこれを拡張して演習11.2をやってく...
キーボードから1行入力された文字列によるテキストファイルを...
http://gyazo.com/f9aee7f492d574f870e85e2022df374c.png
ヒント
import java.io.*;
public class En112 {
public static void main(String[] args) {
try {
ここにプログラムを書く
}
catch(IOException e) {
System.out.println(e);
}
}
}
解答例
import java.io.*;
public class En112 {
public static void main(String[] args) {
try {
InputStreamReader ireader = new InputStreamReader (Sy...
BufferedReader breaderK = new BufferedReader(ireader);
String line = breaderK.readLine();
FileWriter fwriter = new FileWriter("writer.txt");
PrintWriter pwriter = new PrintWriter(fwriter);
pwriter.println(line);
pwriter.close();
FileReader freader = new FileReader("writer.txt");
BufferedReader breaderF = new BufferedReader(freader);
String tmp=null;
while( (tmp=breaderF.readLine()) != null)
System.out.println(tmp);
breaderF.close();
}
catch(IOException e) {
System.out.println(e);
}
}
}
***http://www.ocha.ac.jp/の内容を表示するプログラムを書い...
http://gyazo.com/13044fdd9d372118a1f6fe93896eadb3.png
ヒント1
import java.net.*;
が必要です。
URL targetURL = new URL("http://www.ocha.ac.jp/");
でURLクラスのインスタンスが得られる。
InputStream istream = targetURL.openStream();
でこれからInputStreamのインスタンスが得られる。
InputStreamReader isreader = new InputStreamReader(istre...
でこれからInputStreamReaderのインスタンスが得られる。
BufferedReader breader = new BufferedReader( isreader );
でこれからBufferedReader のインスタンスが得られる。
ヒント2
import java.io.*;
import java.net.*;
public class URLTest {
public static void main (String argv[]) {
try {
ここにプログラムを書く
} catch (IOException e) {
System.out.println("error...");
}
}
}
ヒント3:
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();
InputStreamReader isreader = new InputStreamReader(is...
BufferedReader breader = new BufferedReader( isreade...
ここで一行ずつ読み込む
} catch (IOException e) {
System.out.println("error...");
}
}
}
解答例:
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();
InputStreamReader isreader = new InputStreamReader(is...
BufferedReader breader = new BufferedReader( isreade...
String line;
while((line=breader.readLine()) != null) System.out.p...
} catch (IOException e) {
System.out.println("error...");
}
}
}
***写真ファイルのダウンロード [#h4816514]
http://is.ocha.ac.jp/~siio/cat.jpg
をダウンロードして、cat.jpgというファイルを作るプログラム...
データはテキストじゃなくて、バイナリーです。
ヒント1:
InputStreamのインスタンスに対してread()メソッドを使うと1...
1バイトのデータを書き出すなら、FileOutputStreamだけで可能...
ヒント2:
import java.io.*;
import java.net.*;
public class URLJpeg {
public static void main (String argv[]) {
try {
URL targetURL = new URL("http://is.ocha.ac.jp/~siio/c...
InputStream istream = targetURL.openStream();
FileOutputStream fout = new FileOutputStream("cat.jpg...
というインスタンスを作って、
istream.read()
で読んで、
fout.write(1バイト)
で書き出します。
解答例
import java.io.*;
import java.net.*;
//http://is.ocha.ac.jp/~siio/cat.jpg
//をダウンロードして、cat.jpgというファイルを作るプログ...
public class URLJpeg {
public static void main (String argv[]) {
try {
URL targetURL = new URL("http://is.ocha.ac.jp/~siio/c...
InputStream istream = targetURL.openStream();
FileOutputStream fout = new FileOutputStream("cat.jpg...
int aData;
while((aData = istream.read()) != -1) fout.write(aDa...
istream.close();
fout.close();
} catch (IOException e) {
System.out.println("error...");
}
}
}
***本日のレポート [#gfb7d787]
上記のプログラム(URLJpeg.java, URLJpeg.class) を、出席番...
***写真読み込みの高速化 [#c12193a9]
上記の例では写真データを1バイトずつ読み書きしていました。
InputStreamのメソッドを調べると、複数バイト単位で読み込む...
たとえば、512バイトずつ読み書きすることで、処理速度が向上...
そこで、複数バイト読み書きするよう、上記のプログラムを変...
実際にどの程度(実行速度にして何倍くらい)性能向上するか...
read
public int read(byte[] b)
throws IOException
入力ストリームから配列長さだけのバイト数を読み込もうとし...
実際に読み込まれたバイト数は整数として返されます。
戻り値は、バッファに読み込まれたバイトの合計数。ストリー...
を使って読みこみ、
write
public void write(byte[] b,
int off,
int len)
throws IOException
指定された byte 配列の、オフセット位置 off から始まる le...
を使ってください。
-ヒント
byte[] data = new byte[512];
という配列を用意して、
int datalength;
while(( datalength=istream.read(data)) != -1) fout.writ...
とします。
-解答例
import java.io.*;
import java.net.*;
//http://is.ocha.ac.jp/~siio/cat.jpg
//をダウンロードして、cat.jpgというファイルを作るプログ...
//データはテキストじゃなくて、バイナリーです。
public class URLJpeg2 {
public static void main (String argv[]) {
byte[] data = new byte[512];
try {
URL targetURL = new URL("http://is.ocha.ac.jp/~siio/c...
InputStream istream = targetURL.openStream();
FileOutputStream fout = new FileOutputStream("cat.jpg...
int datalength;
while(( datalength=istream.read(data)) != -1) fout.wr...
istream.close();
fout.close();
} catch (IOException e) {
System.out.println("error...");
}
}
}
ここでは512バイトを読み込むことにしました。でも、InputStr...
available()
この入力ストリームのメソッドの次の呼出しによって、ブロッ...
これを使えば、適切な長さを見積もれるかもしれません。
***引数のURLをファイルにするプログラムを考えてみましょう ...
curlというコマンドがあります。
curl http://ocha.ac.jp/
などとすると、htmlが見られますし、
curl http://is.ocha.ac.jp/~siio/cat.jpg > cat.jpg
などとすると、ファイルとして保存できます。これに近いプロ...
***宿題 [#z4996c31]
上記の引数のURLをファイルにするプログラムを作ってください。
また、cat.jpgのファイル取得でまとめて読むことでどれくらい...
レポートにしてください。レポートの書式は任意です。(テキ...
これらのjava, class, レポートのファイルをまとめて、出席番...
////////////////////////////////////////
**宿題提出 [#i696b9d3]
宿題の演習11.1の
プログラムのファイル(javaとclass)およびdata.datを、
学籍番号+名前のフォルダに入れて、zipで圧縮したファイルを...
*2015年10月29日 [#l69cd87f]
**第10章 Stringクラスとコレクションフレームワーク [#raff...
*** 入力した文字を逆に出力するプログラムを作る [#qa9843dd]
[e100:?/Documents/java] siio% java TestString ochanomizu
ochanomizu
uzimonahco
[e100:?/Documents/java] siio%
このソースは、
public class TestString {
public static void main (String argv[]) {
try{
System.out.println(argv[0]);
int len = argv[0].length();
for(int i = len - 1; i>=0; i--) {
System.out.print(argv[0].charAt(i));
}
System.out.println();
}
catch (Exception e) {
System.out.println("please input a word");
}
}
}
である。
***Linked List の練習 [#z4cca00f]
サンプルプログラムを実行するときは、
LinkedList<String> list = new LinkedList<String>();
などと定義すると良い。
***program 10.2 改造 [#p8d0055f]
Alice --> Bob --> Cindy --> DaveというLinkedListをつく...
それからtoArray()メソッドでString配列を作ってfor each文で...
***Hash Mapの練習 [#x4346953]
プログラム10.4を参考にして、
以下のように動作する英語ー日本語単語変換プログラムを作れ。
[e100:?/Documents/java] siio% java EtoJ banana
バナナ
[e100:?/Documents/java] siio% java EtoJ apple
りんご
[e100:?/Documents/java] siio% java EtoJ
Please input an English word
ヒント:
import java.util.*;
public class EtoJ{
public static void main(String args[]) {
HashMap<String,String> map = new HashMap<String,String>...
map.put("apple","りんご");
map.put("banana","バナナ");
map.put("orange","みかん");
map.put("pineapple","パイナップル");
map.put("grape","ぶどう");
map.put("peach","もも");
map.put("melon","メロン");
map.put("lemon","レモン");
try {
System.out.println(map.get(args[0]));
}
catch(Exception e) {
System.out.println("Please input an English word");
}
}
}
***本日の提出物 [#kafadd71]
EtoJ.javaとEtoJ.classをzipでまとめて提出してください。
***宿題 [#h81b1125]
159ぺーじから166ページを読んで、演習11.1をやってください。
書き出すファイルの名前はdata.datにしてください。
作ったファイルを
od -h dout.dat
または
hexdump dout.dat
してみてください。
このプログラムのファイル(javaとclass)およびdata.datを、...
-----------
**第9章 エラーと例外処理 [#m1d3775b]
次のプログラムを作って試してください。
引数が少ないとエラーが出るのを確認してください。
public class TestException {
public static void main(String argv[]){
System.out.println(argv[0]+" "+argv[1]);
System.out.println("Nice to meet you.");
}
}
エラーが出る可能性のある場所をtryでくくっておき、
エラーが出たらそれを細くする処置をcatchで指定します。
public class TestException {
public static void main(String argv[]){
try{
System.out.println(argv[0]+" "+argv[1]);
System.out.println("Nice to meet you.");
}
catch (Exception e) {
System.out.println("please input 2 words.");
}
}
}
*2015年10月22日 [#u5b4772b]
**第8章 継承 [#ja53857e]
継承の話をしました。
別のクラスを継承することで、
差分だけを書いて機能を拡張していくことができます。
http://gyazo.com/2c8ef14d8be63b9fc18c58d79f2f3879.png
*** Osaifuクラスを継承してOsaifuUSDクラスを作ってみよう [...
-OsaifuUSDクラスはアメリカで買い物をするときに便利な、ア...
-あたらしく追加するメソッドは以下です
-- void inUSD(int x) xドルをお財布に入金します。このと...
-- int outUSD(int x) xドルをお財布から出金します。この...
--1ドルは90円にしてください
//-スーパークラスのメソッドを上書きするメソッドは以下です
//-- void print() お財布の残高を円とドルで表示します
-OsaifuUSDクラスをテストするmain()メソッドでは次のことを...
-- OsaifuUSDインスタンスを一つ作ってそれをsaifu1という名...
-- OsaifuUSDインスタンスをもう一つ作ってそれをsaifu2とい...
--saifu1に1000円入金する
--saifu2に5ドル入金する
--saifu1とsaifu2が持っている金額を印刷する
--saifu1から2ドル出金してそれをsaifu2に入金する
--saifu1とsaifu2が持っている金額を印刷する
-動作例
http://gyazo.com/f51ea5895aaab32bb30b9a940d91515d.png
-ヒント:一行目はこれ
public class OsaifuUSD extends Osaifu {
-ヒント:mainはこんな感じ
public static void main(String argv[]) {
OsaifuUSD saifu1= new OsaifuUSD();
OsaifuUSD saifu2=new OsaifuUSD();
saifu1.in(1000);
saifu2.inUSD(5);
saifu2.inUSD(saifu1.outUSD(2));
saifu1.print();
saifu2.print();
}
-解答例
public class OsaifuUSD extends Osaifu {
public int outUSD(int usd) {
okane-=usd * 90;
return usd;
}
public void inUSD(int usd) {
okane+=usd * 90;
}
public static void main(String argv[]) {
OsaifuUSD saifu1 = new OsaifuUSD();
OsaifuUSD saifu2 = new OsaifuUSD();
saifu1.in(1000);
saifu2.inUSD(5);
saifu1.print();
saifu2.print();
saifu2.inUSD(saifu1.outUSD(2));
saifu1.print();
saifu2.print();
}
}
*** OsaifuUSDクラスの改造(1) [#y43b2389]
親のメソッドを活用しても良い
public class OsaifuUSD extends Osaifu {
public int outUSD(int usd) {
return ( out( use * 90) / 90 );
}
public void inUSD(int usd) {
in( usd * 90 );
}
…
}
*** OsaifuUSDクラスの改造(2) [#kf476dbc]
OsaifuUSDにprint()メソッドを追加して、
円表示の次の行に ( xxx USD ) と残高をUSD表示するようにし...
円表示を行う部分はスーパークラスOsaifuのインスタンスメソ...
http://gyazo.com/39a7b24a8c45e15ac55693592c2eb7cf.png
-解答例
public void print() {
super.print();
System.out.println("( " + (okane / 90) + " usd )" );
}
***小テスト練習(そのうち実施します) [#e20f3777]
以下のプログラムの中で、
クラス、インスタンス、サブクラス、スーパクラス、クラスメ...
インスタンス化、継承がどこで行われているのか確認してくだ...
(importで始まる一行目はまだ説明していない内容なので小テス...
import javax.swing.JFrame;
public class SampleWindow extends JFrame {
public static void main(String args[]) {
SampleWindow w = new SampleWindow();
w.setVisible(true);
}
}
***本日のレポート [#w6127b60]
今日作ったOsaifuUSD.javaと、OsaifuUSD.classを上記の方法で...
---------------
**第7章 [#ad617712]
*** つぎにOsaifuクラスにコンストラクタを追加してみよう [#...
-Osaifu() で残金0のインスタンスを作る
-Osaifu(int x) で引数を残金の初期値としたインスタンスを作る
ことができるコンストラクタを作ろう。
これをmainから呼んで、上記のプログラムと同じことをするた...
Osaifu saifu1 = new Osaifu(1000);//インスタンスを作る
//最初の保持金額を1000円にする
Osaifu saifu2 = new Osaifu(500);//インスタンスを作る
//最初の保持金額を500円にする
とすることになる。
***コンストラクタ解答編 [#d268ae97]
以下のコンストラクタを作ることになる。
Osaifu() { okane = 0; }
Osaifu(int x) { okane = x; }
これは以下のように書いても良い。
Osaifu() { this(0); }
Osaifu(int x) { okane = x; }
**第6章(復習) [#e4a87c0e]
***クラスとインスタンスの説明をしました [#ad9ed7a7]
-クラスは型、インスタンスはそれから作られたもの
--クラスがたいやきの焼き型だとすると、インスタンスはそれ...
--クラスは設計図でインスタンスはそれから作られたもの
-クラスとインスタンスそれぞれにメソッドと変数がある
--クラス変数 例:何個のインスタンスを作ったか?
--クラスメソッド 例:インスタンスを作れ
--インスタンス変数 例:ひとつのたいやきの重さ
--インスタンスメソッド 例:たいやきをxxグラム食べる
http://gyazo.com/bbdd3587977a172f7fa7f00c4f5787e0.png
*** Osaifuクラスを作ってみよう [#ca1c7039]
-Osaifuクラスからはインスタンスがたくさん作られる
--Osaifuクラスはお財布の設計図/工場、ここから実際のお財...
--工場出荷時の残金は0円だけど、その後、いろいろな値になる...
--ということで残金はインスタンス変数とすべきだろう
-Osaifuクラスには次のメソッド、変数が必要だろう
--残金を表すインスタンス変数 int okane
--お金を入金するインスタンスメソッド void in(int x);
--お金を出金するインスタンスメソッド int out(int x); 戻...
--残金を印刷するインスタンスメソッドがあってもよいだろう ...
http://gyazo.com/bd6eaafd220dc7ff791288089f293b28.png
-Osaifuクラスをテストするmain()メソッドでは次のことをやっ...
-- Osaifuインスタンスを一つ作ってそれをsaifu1という名前に...
-- Osaifuインスタンスをもう一つ作ってそれをsaifu2という名...
--saifu1に1000円入金する
--saifu2に500円入金する
--saifu1とsaifu2が持っている金額を印刷する
--saifu1から200円出金してそれをsaifu2に入金する
--saifu1とsaifu2が持っている金額を印刷する
public static void main(String argv[]) {
Osaifu saifu1 = new Osaifu();
Osaifu saifu2 = new Osaifu();
saifu1.in(1000);
saifu2.in(500);
saifu1.print();
saifu2.print();
saifu2.in(saifu1.out(200));
saifu1.print();
saifu2.print();
}
http://gyazo.com/c618901458edc1ba338cab87d2810157.png
-Osaifu.java 解答編
public class Osaifu {
int okane;
public void in (int x) { okane += x; }
public int out(int x) { okane -= x; return x; }
public void print() {
System.out.println( "okane = " + okane +" yen");
}
public static void main(String argv[]) {
Osaifu saifu1 = new Osaifu();
Osaifu saifu2 = new Osaifu();
saifu1.in(1000);
saifu2.in(500);
saifu1.print();
saifu2.print();
saifu2.in(saifu1.out(200));
saifu1.print();
saifu2.print();
}
}
--このプログラムでは残金がマイナスになってしまってもかま...
--このためには、例えばoutメソッドを以下のようにすれば良い
public int out(int x) {
if(x < okane ) {
okane = okane -x;
return x;
} else {
int nokori = okane;
okane =0;
return nokori;
}
}
*2015年10月15日 [#a4d81cbd]
**第5章 (つづき) [#rcaa2e55]
***for-each文は新しい手法なので練習しましょう [#x39aee0e]
-プログラム5.7の代わりに以下をやってみよう
class ArrayTest {
public static void main (String args[]) {
int[] vec = new int[3];
vec[0]=1;
vec[1]=2;
vec[2]=3;
for (int x: vec) {
System.out.println(x);
}
}
}
*** 演習 [#w05d8884]
mainの引数argsは、Stringの配列で、コマンドラインで起動し...
コマンドの後に続けた書いた文字が入っています。
args[0], args[1], args[2] .... をすべてfor-each文で
表示するプログラムを書いてみましょう。
http://gyazo.com/8d8effac163e0dc939e74f237d8507b1.png
ヒント:for(String s: args)を使います
-解答例
class ArgsTest2 {
public static void main (String args[]) {
for(String s: args)
System.out.println(s);
}
}
--args[]の文字をすべてfor-each文で表示する
javac ArgsTest2 cat dog cow fox
catdogcowfox
--args[]の文字をすべてfor-each文で+つけて表示する
javac ArgsTest2 cat dog cow fox
cat + dog + cow + fox
**第6章 クラスの基礎 [#k3cb68e0]
***クラスとインスタンスの説明をしました [#y120a75f]
-クラスは型、インスタンスはそれから作られたもの
--クラスがたいやきの焼き型だとすると、インスタンスはそれ...
--クラスは設計図でインスタンスはそれから作られたもの
-クラスとインスタンスそれぞれにメソッドと変数がある
--クラス変数 例:何個のインスタンスを作ったか?
--クラスメソッド 例:インスタンスを作れ
--インスタンス変数 例:ひとつのたいやきの重さ
--インスタンスメソッド 例:たいやきをxxグラム食べる
http://gyazo.com/bbdd3587977a172f7fa7f00c4f5787e0.png
-演習問題6.1, 6.2, 6.3
例えば以下のような実行結果が出るようにしてください
http://gyazo.com/deeb78a70a724a01ce76945235d42ab8.png
-Point3Dのメソッドを充実させて次のmain()メソッドで
10, 20, 30
-10, -20, -30
という結果が出るようにしましょう
public static void main(String argv[]) {
Point3D pt1 = new Point3D();
Point3D pt2 = new Point3D();
pt1.set(10, 20, 30);//インスタンス変数を...
pt2.set(-pt1.getx(), -pt1.gety(), -pt1.ge...
pt1.print();//インスタンスメソッド呼出
pt2.print();
}
-Point3Dに、他の点との距離を返すメソッド distance ( Point...
10, 20, 30
-10, -20, -30
74.83314773547883
という結果が出るようにしましょう
public static void main(String argv[]) {
Point3D pt1 = new Point3D();
Point3D pt2 = new Point3D();
pt1.set(10, 20, 30);//インスタンス変数を...
pt2.set(-pt1.getx(), -pt1.gety(), -pt1.ge...
pt1.print();//インスタンスメソッド呼出
pt2.print();
System.out.println(pt1.distance(pt2));
}
--解答例
double distance ( int ptx, int pty, int ptz ) {
int dx = ptx - this.x;
int dy = pty - this.y;
int dz = ptz - this.z;
return Math.sqrt(dx * dx + dy * dy + dz * dz);
}
double distance ( Point3D p ) {
return this.distance(p.getx(), p.gety(), p.getz());
}
**第7章 クラスとオブジェクトの操作 [#cb74f6ed]
*** 他の点との距離を返すメソッドの例を説明しました [#q51c...
double distance ( int ptx, int pty ) {
int dx = ptx - this.x;
int dy = pty - this.y;
return Math.sqrt(dx * dx + dy * dy);
}
double distance ( Point p ) {
return this.distance(p.getx(), p.gety());
}
distanceという名前は同じでも、引数の違いで、異なる動作を...
*** Osaifuクラスを作ってみよう [#a4695298]
-Osaifuクラスからはインスタンスがたくさん作られる
--Osaifuクラスはお財布の設計図/工場、ここから実際のお財...
--工場出荷時の残金は0円だけど、その後、いろいろな値になる...
--ということで残金はインスタンス変数とすべきだろう
-Osaifuクラスには次のメソッド、変数が必要だろう
--残金を表すインスタンス変数 int okane
--お金を入金するインスタンスメソッド void in(int x);
--お金を出金するインスタンスメソッド int out(int x); 戻...
--残金を印刷するインスタンスメソッドがあってもよいだろう ...
http://gyazo.com/bd6eaafd220dc7ff791288089f293b28.png
-Osaifuクラスをテストするmain()メソッドでは次のことをやっ...
-- Osaifuインスタンスを一つ作ってそれをsaifu1という名前に...
-- Osaifuインスタンスをもう一つ作ってそれをsaifu2という名...
--saifu1に1000円入金する
--saifu2に500円入金する
--saifu1とsaifu2が持っている金額を印刷する
--saifu1から200円出金してそれをsaifu2に入金する
--saifu1とsaifu2が持っている金額を印刷する
public static void main(String argv[]) {
Osaifu saifu1 = new Osaifu();
Osaifu saifu2 = new Osaifu();
saifu1.in(1000);
saifu2.in(500);
saifu1.print();
saifu2.print();
saifu2.in(saifu1.out(200));
saifu1.print();
saifu2.print();
}
http://gyazo.com/c618901458edc1ba338cab87d2810157.png
***本日のレポート [#x4688e18]
今日作ったOsaifu.javaと、可能ならばOsaifu.classを上記の方...
*2015年10月8日 [#s7f2474a]
**第3章 [#kac60e68]
-演習
--演習3.4をみて、自分の名前の最初の文字の文字コードを表示...
--arg[0]とarg[1]をprintlnの中で+でつないで表示する
http://gyazo.com/8159f78165e17781a7110de3763c833c.png
ヒント
class ArgsTest {
public static void main (String args[]) {
System.out.println(args[0]);
}
}
解答
class ArgsTest {
public static void main (String args[]) {
System.out.println(args[0] + " + " + args[1]);
}
}
**第5章 [#gc9fc2cb]
***演習 [#odb3bb66]
-演習問題5.4(変更)
乱数を10個表示する
public class Score {
public static void main (String argv[]) {
int i,a;
for(i=0;i<10;i++) {
a=(int)(Math.random() * 100);
System.out.println(a);
}
}
}
次にこの乱数を点数とみなして、演習問題5.4の基準に従ってAB...
動作例を以下に示す。
http://gyazo.com/829b04a7fc82cdfe9dd0dfa650af873e.png
解答例:
public class Score {
public static void main (String argv[]) {
int i,a;
for(i=0;i<10;i++) {
a=(int)(Math.random() * 100);
System.out.print(a + " ");
if(a<40) System.out.println("D");
else if(a<60) System.out.println("C");
else if(a<80) System.out.println("B");
else System.out.println("A");
}
}
}
-演習問題5.5をやってみよう
http://gyazo.com/1733defca0c709c41c69ea729320ab61.png
解答例:
class Kinri {
public static void main (String args[]) {
double okane=100000;
int year;
year=1;
while(okane < 200000) {
okane = okane * 1.05;
System.out.println("year = " + year + " okane= " + ok...
year++;
}
}
}
現在の普通預金の金利0.04%だと倍になるのに何年かかるだろう...
http://gyazo.com/95cd94db39b407e7961355b20da8fc67.png
-演習5.6をやってみよう
while文をfor文に変えてみる
解答例:
class Kinri {
public static void main (String args[]) {
double okane=100000;
int year;
for(year=1;okane < 200000; year++) {
okane = okane * 1.05;
System.out.println("year = " + year + " okane= " + ok...
}
}
}
***本日のレポート [#c0b30188]
今日作ったKinri.javaとKinri.classを以下の方法で提出してく...
** 出来上がったプログラムの提出方法 [#qc79505e]
- フォルダを作ってその中にjavaファイルとclassファイル
//と、取扱説明書ファイルと、それ以外に必要なファイルがも...
を入れてください。
//フォルダの中のclassファイルをダブルクリックしたらプログ...
-このフォルダに名前を付けてください。フォルダの名前は、「...
-このフォルダを圧縮してください
--フォルダを選択してファイルメニューから圧縮を選択します
-圧縮したファイルを以下の手順で
/home/isstaff/siio/Public/Drop Box/.
に提出してください。ターミナル.appからなら
cp 123456siioitiro.zip /home/isstaff/siio/Public/Drop\ Box
としてください。ファインダーからなら、メニューから「移動...
以下のように入力して、移動ボタンを押して、そこに現れるド...
http://is.ocha.ac.jp/~siio/gyazo/dropbox.png
--書き込み専用なので確認できないけどokですかという意味の...
-レポート提出用フォルダは書き込み専用で見ることができませ...
-授業中でしたら、[[ココを見ると:http://is.ocha.ac.jp/~sii...
-同じ名前のフォルダを投げ込むと、エラーになります。という...
**欠席状況 [#d6071b04]
3/4以上出席してください。(欠席は3回まで)欠席4回で自動的...
欠席3回以下なら不可にはなりませんが、成績が下がるかもしれ...
//ので、心当たり無ければ連絡ください。
//|学籍番号|欠席回数|判定|
//||||
//(2015/1/22現在)
**javaのマニュアル [#wbbeb93e]
http://docs.oracle.com/javase/jp/8/api/
**教科書 [#pb2ce7ad]
http://gyazo.com/de3288074dae1c75f6df4ef3c0b9b3d4.png
http://www.amazon.co.jp/dp/4883732258/
買ってください。もしくは、先輩から安く譲ってもらってくだ...
** この講義の目的 [#y8b25542]
+Javaでプログラムする
+オブジェクト指向の概念を理解してプログラミングする
+GUIプログラミングをする
** この講義の順序 [#ucbfc8ec]
+Javaになれる(C言語などのプログラミング手法の復習)
+オブジェクト指向について理解する
+GUIプログラミングについて理解する(イベント駆動)
+お絵描きプログラムを作ってみる
** 成績評価 [#re4e7246]
+お絵描きプログラムの完成度,作り込み
+毎回の宿題の達成(参考程度)
+出席状況(参考程度)
*2015年10月1日 [#l6a0cf97]
**第1章および第2章 [#z8a3e08a]
*** Mac OS XでJavaを使う [#pbd34d70]
Mac OS XはJavaと相性が良く、最初からjavaがインストールさ...
ということでWindowsより簡単に(というか何もしなくても)ja...
*** terminalを起動する [#vdc7cf07]
//#ref(How2Java/terminal.png)
http://is.ocha.ac.jp/~siio/gyazo/7366bfab668207c6598c4d88...
- terminalは、/Applications/Utilities/の中にあります。
ちなみに、/Applicationsはファインダでは/アプリケーション...
/Applications/Utilities/は、/アプリケーション/ユーティリ...
- ダブルクリックすると起動します。
よく使うことになると思いますので、dockにドラッグアンドド...
登録しておくと良いかと思います。(うちの子はこのアイコンを...
- メニューのターミナル/環境設定...を開きます。
ここで、テキストを選んで、「テキストをアンチエイリアス処...
チェック入れておくとフォントが奇麗なのでおすすめです。
http://is.ocha.ac.jp/~siio/gyazo/8aa6f5ab8878bc57c0657b94...
- おなじウィンドウの「詳細」に、「文字エンコーディング」...
Javaの場合、ここで「Unicode (UTF-8)」を選んでおきましょう。
(日本語コードにはいろいろな種類があって混乱しますが、21...
//http://gyazo.com/1b36039be113ef9e8ed04842aaeb3da6.png
- ターミナルから、javac helpとタイプしてみてください。Jav...
オプションの説明が日本語で出てくると思います。
--最近のMac OS X (Mountain Lionなど)では、Javaが標準で入...
その場合は、ダインロードするかどうか聞かれますので、ダウ...
--ここでの日本語表示が化けていたら、javaがUnicodeじゃなく...
-JavaをUnicodeで動かす(前項で文字化けした場合の対処)
--javacを起動するときに、javac -J-Dfile.encoding=UTF-8 と...
--javaを起動するときには、java -Dfile.encoding=UTF-8 とオ...
--面倒なので、.bash_profileに登録しておきましょう
-- ~/.bash_profileを開いて以下の行を追加します
alias javac='javac -J-Dfile.encoding=UTF-8'
alias java='java -Dfile.encoding=UTF-8'
*** miを用意しておく [#kabf13aa]
http://is.ocha.ac.jp/~siio/gyazo/2c0e58d1b83d396e1fbe6f5d...
- Javaのプログラムを作るエディタです。一番簡単にはtermina...
エディタを呼び出せば良いです。
- でも日本語の設定などが結構難しいので、GUIベースのエディ...
- いくつかありますが、おすすめの一つはmi (みみかきエディ...
- miを使うには、http://www.mimikaki.net/からダウンロード...
- これも便利なのでdockに入れておくとよいと思います。
http://is.ocha.ac.jp/~siio/gyazo/7579915fefe1ecd9c0e4e2dd...
*** 超簡単なプログラム(hello world)を作ってみる [#u8bc5ec3]
- ターミナルから、vi Hello.javaとかemacs Hello.javaとかpi...
もしくは、miを起動してファイル/新規/javaを選んで新しい...
- ここで、以下のようなプログラムを書いてみます。
class Hello {
public static void main (String args[]) {
System.out.println("hello java world!");
}
}
-このときmiで改行コードをLF (UNIX)にしておいてください。...
http://is.ocha.ac.jp/~siio/gyazo/20121004010107.png
- これをHello.javaという名前で保存して、コンパイル実行し...
javac Hello.java (コンパイルする)
java Hello (実行する。.javaなどの拡張子は不要)
hello java world! (結果)
- 次に簡単なウィンドウを出してみましょう。
授業の最後の方で紹介する,Swingというフレームワークを使っ...
import javax.swing.JFrame;
public class SimpleWindow {
public static void main(String argv[]) {
JFrame f = new JFrame("私が作った最初の窓...
f.setSize(200,100);
// f.setDefaultCloseOperation(JFrame.EXIT_...
f.setVisible(true);
}
}
これをSimpleWindow.javaという名前で保存して、
javac SimpleWindow.java
java SimpleWindow
とタイプしてコンパイル/実行します。
このプログラムは,ウィンドウのクローズボタンを押しても終...
プログラムを停止するには,ターミナルでコントロール-cを押...
#ref(How2Java/simplewindow.png)
***本日のレポート [#a0ea5b22]
今日作ったSimpleWindow.javaとSimpleWindow.classを以下の方...
** 出来上がったプログラムの提出方法 [#y9911f6d]
- フォルダを作ってその中にjavaファイルとclassファイル
//と、取扱説明書ファイルと、それ以外に必要なファイルがも...
を入れてください。
//フォルダの中のclassファイルをダブルクリックしたらプログ...
-このフォルダに名前を付けてください。フォルダの名前は、「...
-このフォルダを圧縮してください
--フォルダを選択してファイルメニューから圧縮を選択します
-圧縮したファイルを以下の手順で
/home/isstaff/siio/Public/Drop Box/.
に提出してください。ターミナル.appからなら
cp 123456siioitiro.zip /home/isstaff/siio/Public/Drop\ Box
としてください。ファインダーからなら、メニューから「移動...
以下のように入力して、移動ボタンを押して、そこに現れるド...
http://is.ocha.ac.jp/~siio/gyazo/dropbox.png
--書き込み専用なので確認できないけどokですかという意味の...
-レポート提出用フォルダは書き込み専用で見ることができませ...
-授業中でしたら、[[ココを見ると:http://is.ocha.ac.jp/~sii...
-同じ名前のフォルダを投げ込むと、エラーになります。という...
---------
*ヒューマンインタフェース 2015年前期 [#l6fbe8d2]
**出席状況 [#e499ad62]
学部「ヒューマンインタフェース」は出席重視の授業です.そ...
授業回数が15回程度と見込まれますので,欠席が4回を超えた場...
//以下に(初回の4/10を除く)授業全体の欠席状況を示してお...
欠席回数は成績に大きく影響しますので、間違いありましたら...
//|学籍番号|欠席回数|出席点|
//|1320538 | 0| |
|学籍番号|4月17日|4月24日|5月1日|5月8日|5月15日|5月22日|5...
|1320501|欠|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320502|欠|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320504|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320505|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320506|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320507|出|出|出|出|出|出|出|出|出|出|欠|欠|出|出|
|1320508|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320509|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320510|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320511|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320512|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320514|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320516|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320517|出|出|出|出|出|出|出|出|出|出|出|出|出|欠|
|1320518|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320519|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320520|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320522|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320523|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320525|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320526|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320527|出|出|欠|出|出|出|出|出|出|出|出|出|出|出|
|1320528|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320529|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320530|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320531|出|出|出|出|出|出|出|出|出|出|出|欠|出|出|
|1320532|出|出|出|出|欠|出|出|出|出|出|出|出|出|出|
|1320533|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320534|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320535|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320536|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320537|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320539|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320540|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320541|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320542|出|欠|出|出|出|出|欠|欠|出|欠|欠|欠|欠|欠|
|1320543|出|出|出|出|出|出|出|出|出|出|欠|出|出|出|
|1320544|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1220527|出|出|出|出|出|出|出|出|欠|出|出|欠|出|欠|
|1220529|出|出|欠|出|出|出|出|出|出|出|欠|出|出|出|
|1220533|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
** ヒューマンインタフェースのレポート 2015年前期 [#da2caa...
//案内が遅れてすみません。案内が遅れたことを配慮して締め...
** レポートのお知らせ [#jec37251]
- 提出は任意です.もし良いレポートを提出いただけたら出席...
- 締め切り2015年9月11日金曜日
-形式分量:A4, ページ数は2-3ページ程度
-提出先・提出方法:PDFにしてsiio@mac.comまでメール添付で...
--メールの標題は「ヒューマンインタフェースレポート: 13205...
//--提出いただいた方はここのページでお知らせします。提出...
--提出いただいた方は以下のとおりです。提出してしばらく経...
自分の番号がなかなか表示されない場合は,受付されていない...
(提出を確認出来るよう締め切りより早めに提出していただくこ...
|学籍番号もしくはペンネーム|
|1320501|
|1320502|
|1320504|
|1320508|
|1320512|
|1320514|
|1320516|
|1320523|
|1320525|
|1320530|
|1320536|
|あこがれは早寝早起き|
|ヒューマン|
//|学籍番号|受理日|
//| 1320516 |2015年8月19日|
//| 1120506 |2013年9月6日|
//| 1120513 |2013年9月6日|
//| 1120503 |2013年9月6日|
//| 1120532 |2013年9月6日|
//| 1120537 |2013年9月6日|
//| 1120507 |2013年9月6日|
//| 1120528 |2013年9月6日|
**レポートの課題 [#r9d045a2]
+身の回りの携帯機器、家電製品、機械製品、コンピュータソフ...
道具、日用品、調度品、設備などから、
使いにくいと思われる道具を見つけ出して欲しい。
+そして、それがなぜ使いにくいのかを、
授業で説明した、
制約、マッピング、Affordance、モデル、
エラー対策、 標準化、直接操作、メタファー、モードなどの用...
(全部の用語を使う必要は無い)
+また,自分ならこのように設計して使いやすくするというアイ...
これも授業で使った用語を交えて、述べよ.
** ヒューマンインタフェースの予定 2015年前期 [#ra45c3dc]
-4/10
-4/17
-4/24
-5/1
-5/8
-5/15
-5/22
-5/29
-6/5 休講日のため授業はありません
-6/12
-6/19
-6/26
-7/3
-7/10
-7/17
-7/24
-7/31 試験週間のため授業はありません
//**宿題
//
//***人の反応速度を測定するプログラムを作って測定してくだ...
//-連休明けの授業(5/15)の開始時に、A4, 1枚(両面印刷でも可...
//--用紙の上辺に学籍番号、学年、氏名を1行で書いておいてく...
//-C 言語では,次のようなプログラムで、”hit now”という文字...
//--http://is.ocha.ac.jp/~siio/hci/hitnow.c
//--このプログラムは固定時間(5秒)後にhit nowが表示され...
//-これによりあなたの応答速度を複数回実測して、人の応答速...
//-また個人差や年齢などで結果は変わるかもしれません。周り...
//-また何度も測定することで、習熟して速度が向上したり、そ...
//--そのような現象が観察できたら、これも報告してください...
//***GUI黎明期のPC性能を調べてください(2014.4.17) [#ba9db...
//-GUI黎明期PCのCPU名、CPUクロック、メモリ容量、画素数を...
//--現在,Windows を使っている人は,最初の Windows が出荷さ...
//--Mac OS Xを使っている人は,1984に出荷された最初の Macin...
//-今あなたが使っているコンピュータと比較してください.
//-次回の授業(4/24)最初に配布するA5サイズの用紙に各自で記...
**教科書 [#ta8dbb5f]
http://ec2.images-amazon.com/images/I/51SsP4P1UiL._SL500_...
http://www.amazon.co.jp/dp/4781912605/
**授業資料 [#s6bf1fc3]
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c1...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c2...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c3...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c4...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c5...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c6...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c7...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c8...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c9...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c1...
(授業開始直前や直後に差し替えされている可能性があります。)
**教科書サポートページ [#b385f64d]
-http://is.ocha.ac.jp/~siio/index.php?CSL11HCI
**宿題:ボタンを押すたびに点灯/消灯を繰り返す(トグルす...
以下は、Arduinoの2ピンに接続された押しボタンスイッチを押...
ちなみにHIGHとLOWはintの値で、int型の変数で保存することが...
int outpin=13; //An LED is connected to ping 13
int inpin=2; //A switch is connected to pin 2
void setup() {
// initialize the digital pin as an output and input.
pinMode(outpin, OUTPUT);
pinMode(inpin, INPUT);
}
void loop() {
if ( digitalRead(inpin) == HIGH) {
digitalWrite(outpin, LOW); // set the LED on
}
else {
digitalWrite(outpin, HIGH); // set the LED off
}
delay(30); // wait for 30 msecond
}
**宿題:人の反応速度を測定するプログラムを作って測定して...
-連休明けの授業(5/8)の開始時に、A5, 1枚に書いて提出してい...
-C 言語では,次のようなプログラムで、”hit now”という文字を...
--http://is.ocha.ac.jp/~siio/hci/hitnow.c
--このプログラムは固定時間(5秒)後にhit nowが表示されま...
-- 乱数を使って表示までの時間を変える改良をしてもらっても...
-これによりあなたの応答速度を実測して、人の応答速度が 300...
*情報と職業 2015年前期 [#c8fe3d5e]
**出席表 [#nea59682]
間違いがあったら至急連絡ください。欠席回数が5回以上は単位...
|学籍番号|履修|4月16日|4月23日|4月30日|5月14日|5月21日|5...
|1220507|聴講|出|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1220510||出|出|出|出|出|出|出|出|出|欠|出|出|出|出|
|1220521|取消|出|欠|出|出|出|欠|出|出|欠|欠|欠|欠|欠|欠|
|1220522|未履修|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1220530|未履修|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1220533||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1220534||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1220541||出|出|出|出|出|欠|出|出|出|出|出|出|出|欠|
|1320501||欠|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320502|未履修|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320504||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320505||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320506|未履修|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320507||出|出|出|出|出|出|出|出|出|出|欠|出|欠|出|
|1320508|聴講|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320509||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320510|未履修|出|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320511|未履修|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320512||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320514||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320516||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320517||出|出|出|出|出|出|出|出|出|出|欠|出|出|欠|
|1320519||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320520||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320522||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320523|未履修|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320524|取消|出|出|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320525|未履修|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320526|取消|出|出|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320528||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320529||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320530||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320531||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320532|未履修|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320533|聴講・取消|出|出|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|...
|1320534|未履修|出|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320535||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320536||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320537||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320538||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320539|未履修|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320540||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320541||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320542||出|出|欠|欠|出|出|出|出|出|欠|欠|欠|出|出|
|1320543||出|出|欠|出|出|出|出|出|出|出|出|欠|出|出|
|1320544||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
** 情報と職業のレポート 2015年前期 [#b0264ee8]
//レポートを予定しています。
//案内が遅れてすみません。案内が遅れたことを配慮して締め...
//** レポートのお知らせ [#m0a091c4]
- 提出は任意です.もし良いレポートを提出いただけたら出席...
- 締め切り2015年9月11日金曜日
-形式分量:A4, ページ数は1ページ
-提出先・提出方法:PDFにしてsiio@mac.comまでメール添付で...
--メールの標題は「情報と職業レポート: 13205XX」としてくだ...
//--提出いただいた方は以下でお知らせします。提出してしば...
--提出いただいた方は以下のとおりです。提出してしばらく経...
自分の番号がなかなか表示されない場合は,受付されていない...
|学籍番号|受理日|
|1320501|2015年9月6日|
|1320505|2015年9月11日|
|1320516 |2015年8月28日|
|1320520|2015年9月9日|
|1320530|2015年9月11日|
|1320538|2015年9月9日|
|1220510|2015年9月1日|
|1220534|2015年9月11日|
**レポートの課題 [#a01a233b]
情報関連企業のなかで、将来性があると思う企業(就職したら...
//1982年にIBMが発売したIBM PCは,その後のパーソナルコンピ...
//
//-IBMがPC業界で主導権を失っていった理由を述べよ
//-あなたが,もし,IBMがPC分野で最盛期を迎えたころにIBM P...
//[[ジム・キャナビーノ (James Cannavino) //:http://jibun....
//の立場だったとしたら,この事態をどう立て直すだろうか....
** 情報と職業の予定 2015年前期 [#l87a1bee]
-4/9
-4/16
-4/23
-4/30
-5/7 月曜授業日のため授業はありません
-5/14
-5/21
-5/28
-6/4
-6/11
-6/18
-6/25
-7/2
-7/9
-7/16
-7/23
-7/30 試験週間ですので授業ありません
**欠席状況 [#f9411eca]
学部「情報と職業」は出席重視の授業です.そのため70%以上出...
授業回数を15回程度と考えて、欠席が4回を超えた場合は単位を...
(欠席には病欠を含みます)。.
//以下に授業全体の欠席状況を示しておきます.
欠席回数は成績に大きく影響しますので、間違いありましたら...
また、病欠、公欠などは成績に影響しないよう考慮します。
証明する書類を持って申し出てください。
//|学籍番号|欠席回数|出席点|
//|1120501|9|不可|
**宿題 (5/21提出) [#fe0f0b67]
Googleで必死に検索してください。ぐぐりまくってください。
他のページの広告にどういう影響がでたか、教えてください。
(5/21の授業開始時に配布する用紙(A5)にその場で記入してい...
**宿題 (5/14提出) [#m1407974]
身の回りの製品で、原価から考えて著しく格安な情報機器(ハ...
(5/14の授業開始時に配布する用紙(A5)にその場で記入してい...
**シラバス [#pe2c86fd]
-第1章 デジタル時代
--情報システムと生活/ビジネス/暮らし
--デジタル情報システムと生活/ビジネス/暮らし
--新しい事業のモデル。大量生産、コスト積み上げ、ものづく...
--デジタルである事
--アナログ(レコード,写真,電話)デジタルの違い、なぜデ...
--アナログ情報(新聞、音楽レコード)は物を伴う、デジタル...
-第2章 マルチメディアシステム
--マルチメディアシステム
--デジタル情報は劣化しないけど、アナログ情報産業は長らく...
--数字から文字,文字から画像音声、CDの容量を計算しよう。
--画像と動画のデータ量、グラビア写真の容量を計算しよう。...
--画素とは
--デジカメの画素
--圧縮の効果
-第3章 情報社会の無料と格安
--格安のハード
--大量生産(フォードの自動車)
--家庭用ゲーム機
--携帯電話商法
--サプライで収益
--有料サイト囲い込み
--無料のソフトウェア
--フリーウェア
--シェアウェア
--無料で配布ーシェア拡大ー技術支援で課金(コンサルタント,...
--無料のサイト(サービス)
--GNUの思想, 寄付(シェアウェア)
--広告で収入
--技術力を示しビジネスにつなげる
-第4章 WWW
--WEB以前の世界
--WEBの歴史
--ブラウザの変遷
--検索エンジン以前の世界
--検索エンジン
--新規なビジネス形態
--新しいコミュニティ
--フォークソノミー(folksonomy)
--クラウドコンピューティング
-第5章 互換ビジネス(コンパチブル,コンパチ)
--大型計算機の互換機
--互換マイクロプロセッサ
--パーソナルコンピュータの互換機
--互換機との戦い
--プリンタの互換機
-第6章 情報関連企業のビジネス戦略
--格安のハードウェア,ソフトウェア,サービス
--webの発達
--ビジネスモデル
--企業はどこで儲けているのか.どこが稼ぎ場所なのか.
-第7章ユビキタスコンピューティング
--今後の情報技術と生活
------------------
*昨年度以前の講義の情報 [#tb9e7d3e]
- LectureOld
------
このページについてのお問い合わせはsiio@is.ocha.ac.jpまで。
終了行:
#contents
*マルチメディアプログラミング実習 2015年度後期 [#s1ac4707]
**最終課題提出状況 [#idfeb7b4]
提出いただいたファイル名、ファイルサイズ、提出日時、は以...
複数提出いただいた場合は、一番新しい日付のものを残して、...
提出したのにここに載っていないとか、提出した最終ファイル...
大至急連絡ください。
(?マークはシステムの不具合です。無視してください)
| サイズ | 月 | 日 | 時間| ファイル名|
| 1835739 |1| 28| 15:08 | 1420501atsukimaya16.zip|
| 1038518 |1| 28| 21:35 | 1420502arakawa.zip|
| 5558 |1| 28| 16:35 | 1420503ikemotohiromi.zip|
| 309719 |1| 28| 11:23 | 1420504ishiimoekolast02.zip|
| 570428 |1| 28| 16:35 | 1420505ChiakiISHIO_SimpleDraw...
| 6558333 |1| 28| 19:15 | 1420506imaimiki.zip|
| 1110204 |1| 28| 11:27 | 1420507iwami2.zip|
| 2378021 |1| 27| 18:02 | 1420508uedashiori01.zip|
| 1492584 |1| 28| 13:23 | 1420509UrushiharaRino.zip|
| 2825291 |1| 27| 19:20 | 1420510 ooshimaharuna.zip|
| 193209 |1| 25| 15:34 | 1420511otawaranana.zip|
| 507482 |1| 28| 13:18 | 1420512ogasawaramoe14.zip|
| 2335590 |1| 28| 21:37 | 1420513ozakikana01.zip|
| 157050 |1| 27| 21:12 | 1420514osanaiharuka14.zip|
| 1500371 |1| 28| 21:35 | 1420515ozawaayumi16.zip|
| 1478092 |1| 28| 23:22 | 1420516oniiwaakari13.zip|
| 143831 |1| 28| 19:17 | 1420517OmataMariko.zip|
| 3122282 |1| 28| 23:56 | 1420518Kitanoshizuka14.zip|
| 365689 |1| 28| 21:49 | 1420519kuboayuno.zip|
| 818401 | 1 |27 |15:16 |1420520sasa.zip|
| 267739 |1| 22| 18:14 | 1420521satosunao.zip|
| 1642918 |1| 28| 23:53 | 1420522shiinaharuka12.zip|
| 494360 |1| 26| 15:31 | 1420523shinmurayori14.zip|
| 227052 |1| 22| 18:22 | 1420525chibayukiko_lasttask.z...
| 324304 |1| 28| 15:25 | 1420526choukaei02.zip|
| 12137824 |1| 28| 17:50 | 1420527tsukuisae17.zip|
| 169900 |1| 28| 16:57 | 1420528tsutsuiminamilast1.zip|
| 429414 |1| 28| 16:55 | 1420529tsuruayako15.zip|
| 530825 |1| 28| 23:23 | 1420530teramachisakiko02.zip|
| 166777 |1| 28| 16:31 | 1420531nemotoyuka11.zip|
| 266367 |1| 27| 07:21 | 1420532hiragaikuko12.zip|
| 131816 |1| 28| 22:22 | 1420533furukawa.zip|
| 83194 |1| 25| 17:28 | 1420534murayamayuri14.zip|
| 671578 |1| 27| 15:50 | 1420535yasueshiori.zip|
| 1076125 |1| 27| 20:27 | 1420536yamashitarisa.zip|
| 6699661 |1| 28| 12:59 | 1420537YukiYamada.zip|
| 342841 |1| 28| 22:57 | 1420538yamamotoaoi 2.zip|
| 446222 |1| 27| 12:54 | 1420539wakamiyaarisa_last.zip|
| 135096 |1| 25| 13:22 | 1420540WatanabeHiromi01.zip|
|143210 |1 |28| 17:05 | 1120525suzukitomoe01.zip|
**欠席回数表 [#aff8c8b7]
欠席回数が多くて単位が出ない人は、幸いいらっしゃらないよ...
欠席回数は成績に反映しますので、
間違いがあったら至急連絡ください。
|学籍番号|10月8日|10月15日|10月22日|10月29日|11月26日|12...
|1120525|0|0|0|0|0|0|0|0|0|1|0|1|
|1420501|0|0|0|0|0|0|0|1|0|0|0|1|
|1420502|0|0|0|0|0|0|0|0|0|1|1|2|
|1420503|0|0|0|0|0|0|0|0|0|0|0|0|
|1420504|0|0|0|0|0|0|0|0|0|0|0|0|
|1420505|0|0|0|0|0|0|0|0|0|0|0|0|
|1420506|0|0|0|0|0|0|0|0|0|0|0|0|
|1420507|0|0|0|0|0|0|0|0|1|0|0|1|
|1420508|0|0|0|0|0|0|0|0|0|0|0|0|
|1420509|0|0|0|0|0|0|0|0|0|0|0|0|
|1420510|0|0|0|0|0|0|0|0|0|0|0|0|
|1420511|0|0|0|0|0|0|0|0|0|0|0|0|
|1420512|0|0|0|0|0|0|0|0|0|0|0|0|
|1420513|0|0|0|0|0|0|0|0|0|0|0|0|
|1420514|0|0|0|0|1|0|0|0|0|0|0|1|
|1420515|0|0|0|0|0|0|0|0|0|0|0|0|
|1420516|0|0|0|0|0|0|0|0|1|0|0|1|
|1420517|0|0|0|0|0|0|0|0|0|0|0|0|
|1420518|0|0|0|0|0|0|0|0|0|0|0|0|
|1420519|0|0|0|0|0|0|0|0|0|1|0|1|
|1420520|0|0|0|0|0|0|0|0|0|0|0|0|
|1420521|0|1|0|0|0|0|0|0|0|0|0|1|
|1420522|0|0|0|0|0|0|0|1|1|0|0|2|
|1420523|0|0|0|0|0|0|0|0|0|0|0|0|
|1420525|0|0|0|0|0|0|0|0|0|0|0|0|
|1420526|0|0|0|0|0|0|0|0|0|0|0|0|
|1420527|0|0|0|0|0|0|0|0|0|0|0|0|
|1420528|0|0|0|1|0|0|0|0|0|0|0|1|
|1420529|0|0|0|0|0|0|0|0|1|1|1|3|
|1420530|0|0|0|0|0|0|0|0|0|0|0|0|
|1420531|0|0|0|1|0|0|0|1|0|1|0|3|
|1420532|0|0|0|0|0|0|0|0|1|0|0|1|
|1420533|0|0|0|0|0|0|1|0|1|1|0|3|
|1420534|0|0|0|0|0|0|0|0|0|0|0|0|
|1420535|0|0|0|0|0|0|0|0|0|0|0|0|
|1420536|0|0|0|0|0|0|0|0|0|0|0|0|
|1420537|0|0|0|0|0|0|0|0|0|0|0|0|
|1420538|0|0|0|0|0|0|0|1|0|0|0|1|
|1420539|0|0|1|0|0|0|0|0|0|0|0|1|
|1420540|0|0|0|0|0|0|0|0|0|0|0|0|
**講義予定 [#n14a0f9e]
|月日|内容|
|10/1|第1,2章|
|10/8||
|10/15||
|10/22||
|10/29||
|11/5|TOEFL試験のため休講|
|11/12|椎尾海外出張のため休講|
|11/19|椎尾学会出張のため休講|
|11/26||
|12/3|椎尾学会出張のため休講|
|12/10||
|12/17||
|12/24||
|1/7||
|1/14||
|1/21||
|1/28|試験期間のため休講|
** 出来上がったプログラムの提出方法 [#a6c8db15]
- フォルダを作ってその中にjavaファイルとclassファイル
//と、取扱説明書ファイルと、それ以外に必要なファイルがも...
を入れてください。
//フォルダの中のclassファイルをダブルクリックしたらプログ...
-このフォルダに名前を付けてください。フォルダの名前は、「...
-このフォルダを圧縮してください
--フォルダを選択してファイルメニューから圧縮を選択します
-圧縮したファイルを以下の手順で
/home/isstaff/siio/Public/Drop Box/.
に提出してください。ターミナル.appからなら
cp 123456siioitiro.zip /home/isstaff/siio/Public/Drop\ Box
としてください。ファインダーからなら、メニューから「移動...
以下のように入力して、移動ボタンを押して、そこに現れるド...
http://is.ocha.ac.jp/~siio/gyazo/dropbox.png
--書き込み専用なので確認できないけどokですかという意味の...
-レポート提出用フォルダは書き込み専用で見ることができませ...
-授業中でしたら、[[ココを見ると:http://is.ocha.ac.jp/~sii...
-同じ名前のフォルダを投げ込むと、エラーになります。という...
*2016年1月21日 [#e4528cee]
現在完成したところのプロフラムの一式を、
フォルダに入れて、出席番号+ローマ字の名前にして、圧縮し...
*2016年1月14日 [#g470d654]
現在完成したところのプロフラムの一式を、
フォルダに入れて、出席番号+ローマ字の名前にして、圧縮し...
*2016年1月7日 [#ld75c2cd]
*** 線を引く簡単なプログラム [#m106b6a2]
JPanelのサブクラスを作りました。
import javax.swing.JPanel;
import java.awt.Graphics;
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);
}
}
こちらはメインのプログラム。JFrameのサブクラスで、これに...
リスナーになっているので、こちらでマウスなどのイベントを...
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
public class SimpleDraw extends JFrame implements MouseM...
int lastx=0, lasty=0, newx, newy;
DrawPanel panel;
public void mouseMoved(MouseEvent arg0) {
}
public void mouseDragged(MouseEvent arg0) {
newx=arg0.getX();
newy=arg0.getY();
panel.drawLine(lastx,lasty,newx,newy);
lastx=newx;
lasty=newy;
}
private void init() {
this.setTitle("Simple Draw");
this.setSize(300, 200);
this.addMouseMotionListener(this);
panel=new DrawPanel();
this.getContentPane().add(panel);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
SimpleDraw frame=new SimpleDraw();
frame.init();
}
}
***Eclipseを使ってみよう [#b72bb1ca]
http://gyazo.com/4383db7fb81f9eacbf5cc959ff77a33d.png
-Eclipseの警告を消す方法
private static final long serialVersionUID = 42L;
という変数を定義しておきます。
***一筆書き解消 [#v227383f]
上で紹介したSimple Drawを、一筆書きにならないように変更し...
-----------------------------------------------
*マルチメディアプログラミングの最終課題 [#yff8f924]
-課題:お絵描きプログラムを作成してさらに取扱説明書を作成...
--この課題のヒントは SimpleDraw をみてください。
** 提出課題として最低やってほしいこと [#p153fadb]
-ペンの太さをメニューで変えられるようにしてください
-ペンの色をメニューとカラーパレットで変えられるようにして...
-消しゴム機能を追加してください
-ウィンドウの大きさを変えても絵が消えてしまわないようにする
(ダブルバッファを使う)
** 機能拡張:以下のことができれば加点します [#kbc51d8b]
-絵や写真のファイルを取り込めるようにする
-いろいろな効果のペンを作る(たとえばペンの動きに従って文...
-絵をファイルへ書き出す機能を作る
-他の絵データをスタンプのように押す機能
-コピーアンドペースト
-メニューバーだけでなく、スライダ、ボタン、別ウィンドウ(...
-そのほか、世の中のお絵描きプログラムにありそうな機能を実...
機能拡張の詳細はSimpleDrawの
-http://is.ocha.ac.jp/~siio/index.php?SimpleDraw#extra
を見てください。SimpleDrawのページでは、
-機能の拡充
-使いやすさの追求
の2通りの拡張を書いてあります。どちらの方針で進めていただ...
説明書に、工夫したところを書いておいてください。
** 取扱説明書の作り方 [#k2d45bde]
-ApplicationsからMicrosoft Office 2011/Microsoft Wordもし...
-せっかくですので作った機能はぜんぶここで説明してください...
-スクリーンキャプチャした図も入れてください。図は次のよう...
--スクリーンキャプチャしたいところで、コマンド(リンゴマ...
--もしくは、コマンド(リンゴマーク)+シフト+4を押すとマ...
--もしくは、コマンド(リンゴマーク)+シフト+4を押し、さ...
--以上の操作で、デスクトップにピクチャファイルができます...
--もしくは、デスクトップのピクチャファイルをダブルクリッ...
-Control キーを押しながらキーボードショートカットを押すと...
-がんばったところ、大変だったところなどを書いていただいて...
** 出来上がったプログラムの提出方法 [#lae68c17]
- フォルダを作ってその中にjavaファイルとclassファイルと、...
-このフォルダに名前を付けてください。フォルダの名前は、「...
-このフォルダを圧縮してください
-このフォルダを圧縮してください
-圧縮したファイルを
/home/isstaff/siio/Public/Drop Box/.
に提出してください。ターミナル.appからなら
cp 123456siioitiro.zip /home/isstaff/siio/Public/Drop\ Box
としてください。ファインダーからなら、メニューから「移動...
以下のように入力して、移動ボタンを押して、そこに現れるド...
http://is.ocha.ac.jp/~siio/gyazo/dropbox.png
--書き込み専用なので確認できないけどokですかという意味の...
-レポート提出用フォルダは書き込み専用で見ることができませ...
-同じ名前のフォルダを投げ込むと、エラーになります。という...
** 締切 [#d1fb9096]
-締め切りは1月28日11:59pmとします
--この日までに提出してください
//--どうしてもそのあともがんばりたい人は1月31日の11:59pm...
//--可能な限り差し替えます(見落とす可能性がありますので...
**昨年度の優秀作品例 [#t40daf10]
-http://is.ocha.ac.jp/~siio/pdf/2013/manual1.pdf
-http://is.ocha.ac.jp/~siio/pdf/2013/manual2.pdf
-http://is.ocha.ac.jp/~siio/pdf/2013/manual3.pdf
-http://is.ocha.ac.jp/~siio/pdf/2013/manual4.pdf
-http://is.ocha.ac.jp/~siio/pdf/2013/manual5.pdf
----------------
*2015年12月24日 [#j5af7f41]
*** 簡単なアニメーション [#gbac3acd]
-まずはなにもしないウィンドウを出します
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class SimpleAnime extends JFrame {
private void init() {
this.setTitle("SimpleAnime");
this.setSize(300,200);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
SimpleAnime frame = new SimpleAnime();
frame.init();
}
}
-次に動くボールを出します
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class SimpleAnime extends JFrame {
JPanel panel;
Graphics g;
private void init() {
this.setTitle("SimpleAnime");
this.setSize(300,200);
panel = new JPanel();
this.getContentPane().add(panel);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
g=panel.getGraphics();
g.setColor(Color.blue);
int x=0, xdelta=10;
while(true) {
g.fillOval(x,80,50,50);
try{Thread.sleep(50);}catch(Exception e){}
g.clearRect(x, 80, 52,52);
x+=xdelta;
if(x>250) xdelta=-10;
if(x<0) xdelta=10;
}
}
public static void main(String[] args) {
SimpleAnime frame = new SimpleAnime();
frame.init();
}
}
http://gyazo.com/12d1f047af8d4f87f7199c8a7db66080.png
-マルチスレッド化する
上記のプログラムでは、main()で、frame.init()したあと、こ...
アニメーションだけをするなら、これでも良いのですが、他に...
以下のように、別のインスタンスを別スレッドで動かします。...
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.lang.Thread;
class Animator implements Runnable {
Graphics g;
public void setGraphics(Graphics animeG) {
g=animeG;
}
public void run() {
int x=0, xdelta=10;
while(true) {
g.fillOval(x,80,50,50);
try{Thread.sleep(50);}catch(Exception e){}
g.clearRect(x, 80, 52,52);
x+=xdelta;
if(x>250) xdelta=-10;
if(x<0) xdelta=10;
}
}
}
class SimpleAnime extends JFrame {
JPanel panel;
Graphics g;
Animator animator;
private void init() {
animator=new Animator();
this.setTitle("SimpleAnime");
this.setSize(300,200);
panel = new JPanel();
this.getContentPane().add(panel);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
g=panel.getGraphics();
g.setColor(Color.blue);
animator.setGraphics(g);
new Thread(animator).start();
}
public static void main(String[] args) {
SimpleAnime frame = new SimpleAnime();
frame.init();
for(int i=0;;i++) {
System.out.println(i);
try {Thread.sleep(500);}catch(Exception e){}
}
}
}
-アニメーションボールの設定ができるアプリケーションを作っ...
//こういうのを作ってほしい
//
//http://is.ocha.ac.jp/~siio/index.php?plugin=attach&pcmd...
ヒント:上のアニメーションのプログラムに、メニューを取り...
action Performedでメニューからのイベントを受け取れば良い...
メニューの動きは、プログラム本来の動きと並列に動いてくれ...
上のアニメーションのようなアニメーション以外何もできない...
メニューは動いてくれます。
ヒント: action Performed ではこうしたら良い
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if(command=="red") g.setColor(Color.red);
if(command=="blue") g.setColor(Color.blue);
ヒント:メニューはSimple Animeでつくって、action listener...
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.lang.Thread;
class Animator implements Runnable, ActionListener {
略
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if(command !=null) {
System.out.println(command);
}
if(command=="red") g.setColor(Color.red);
if(command=="blue") g.setColor(Color.blue);
if(command=="yellow") g.setColor(Color.yellow);
if(command=="fast") xdelta=30;
if(command=="slow") xdelta=5;
}
略
}
class SimpleAnime extends JFrame {
略
private void makeMenu() {
JMenuBar menubar = new JMenuBar();
JMenu menu = new JMenu("color");
JMenu menuSpeed = new JMenu("speed");
JMenuItem item1 = new JMenuItem("red");
item1.addActionListener(animator);
item1.setActionCommand("red");
JMenuItem item2 = new JMenuItem("blue");
item2.addActionListener(animator);
item2.setActionCommand("blue");
JMenuItem item3 = new JMenuItem("yellow");
item3.addActionListener(animator);
item3.setActionCommand("yellow");
menu.add(item1);
menu.add(item2);
menu.add(item3);
JMenuItem item4 = new JMenuItem("fast");
item4.addActionListener(animator);
item4.setActionCommand("fast");
JMenuItem item5 = new JMenuItem("slow");
item5.addActionListener(animator);
item5.setActionCommand("slow");
menuSpeed.add(item4);
menuSpeed.add(item5);
menubar.add(menu);
menubar.add(menuSpeed);
this.setJMenuBar(menubar);
}
略
}
-ボールの色と早さをメニューで指定する(解答編)
上記のプログラムにメニューを追加して、
ボールの色と速さをメニューで指定するようにしました。
メニューはメインのJFrameインスタンスで作ってこれに貼りつ...
Action Listenerは、別スレッドで動いているAnimatorクラスの...
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.lang.Thread;
class Animator implements Runnable, ActionListener {
Graphics g;
int xdelta =5;
public void setGraphics(Graphics animeG) {
g=animeG;
}
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if(command !=null) {
System.out.println(command);
}
if(command=="red") g.setColor(Color.red);
if(command=="blue") g.setColor(Color.blue);
if(command=="yellow") g.setColor(Color.yellow);
if(command=="fast") xdelta=30;
if(command=="slow") xdelta=5;
}
public void run() {
int x=0;
while(true) {
g.fillOval(x,80,50,50);
try{Thread.sleep(50);}catch(Exception e){}
g.clearRect(x, 80, 52,52);
x+=xdelta;
if(x>250) xdelta=-xdelta;
if(x<0) xdelta=-xdelta;
}
}
}
class SimpleAnime extends JFrame {
JPanel panel;
Graphics g;
Animator animator;
private void makeMenu() {
JMenuBar menubar = new JMenuBar();
JMenu menu = new JMenu("color");
JMenu menuSpeed = new JMenu("speed");
JMenuItem item1 = new JMenuItem("red");
item1.addActionListener(animator);
item1.setActionCommand("red");
JMenuItem item2 = new JMenuItem("blue");
item2.addActionListener(animator);
item2.setActionCommand("blue");
JMenuItem item3 = new JMenuItem("yellow");
item3.addActionListener(animator);
item3.setActionCommand("yellow");
menu.add(item1);
menu.add(item2);
menu.add(item3);
JMenuItem item4 = new JMenuItem("fast");
item4.addActionListener(animator);
item4.setActionCommand("fast");
JMenuItem item5 = new JMenuItem("slow");
item5.addActionListener(animator);
item5.setActionCommand("slow");
menuSpeed.add(item4);
menuSpeed.add(item5);
menubar.add(menu);
menubar.add(menuSpeed);
this.setJMenuBar(menubar);
}
private void init() {
animator = new Animator();
this.setTitle("SimpleAnime");
this.setSize(300,200);
this.makeMenu();
panel = new JPanel();
this.getContentPane().add(panel);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
g=panel.getGraphics();
g.setColor(Color.blue);
animator.setGraphics(g);
new Thread(animator).start();
}
public static void main(String[] args) {
SimpleAnime frame = new SimpleAnime();
frame.init();
for(int i=0;;i++) {
System.out.println(i);
try {Thread.sleep(500);}catch(Exception e){}
}
}
}
http://gyazo.com/d5db8ca6fa153520e94ee7d2b7a93915.png
-この先改良すべきこと [#u99ec852]
アニメーションの途中で、ボールがちらつくことがあります。
ボールの場所を矩形で消して、新しいボールを描いているので、
その途中の作業が見えてしまうからです。
これを無くすには、ダブルバッファの手法を用います。
すなわち、描画する面をもう一枚用意して、
そちらに描画し、
描画が終わったところで、一気に更新する方法です。
ダブルバッファの手法は、授業の最終課題である「お絵かきプ...
/////////////////
***Mac OS X [#pef81779]
How2MacOSXProgramming を見てください
***iPhone [#bbd93343]
How2iPhoneProgramming を見てください
*2015年12月17日 [#h4a54ab4]
**宿題提出 [#geafdf5f]
プログラム13.1のようにボタンを配置して、それぞれを押すと...
このプログラムの.java, classファイルをまとめて、出席番号...
**第13章 様々なコンポーネントとレイアウト [#naf0bc4c]
***プログラム13.1の説明図 [#zd72b845]
http://gyazo.com/649bbe400f96c8c31923bcf7e5aebbd4.png
***13.2節を読んで,プログラム13.2を実行させてください [#b...
ボタンが一つしかないプログラムなので、ActionPerformedの中...
ボタン種類のチェックを省略してしまっているところが特徴で...
***演習13.1をやってください [#b44ad366]
こんなのをつくってください。
http://gyazo.com/999f1e766551a994186cc3d159bde0bf.png
BorderLayoutでもできるようですが、私はGridLayour使ってみ...
panel.setLayout(new GridLayout(2,2));
panel.add(textleft);
panel.add(textright);
panel.add(button);
panel.add(clearbutton);
ボタンが複数になるので、ActionPerformedの中で、ボタンを区...
解答例
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class JTextFieldSample extends JFrame implements ...
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("JTextF...
sample.pack();
sample.setVisible(true);
sample.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
***どのボタンからのイベントであるかを識別する方法 [#o0fce...
-プログラム12.3では
--ボタンへの参照を、action Performedから参照できる変数に...
--action Performedの中で、e.get Source()してButtonのイン...
-プログラム12.4では、
--準備として button.set Action(button.get Text());でボタ...
-- action Performedの中で e.get Action Command()でアクシ...
-ということで以下のようなことも可能
--acttion Performedの中で、get Source()してボタンを得る
--そのボタンからget Textしてボタンの文字列を得て文字比較...
--ただし、get Sourceで得られるのはボタンの親クラスなのでB...
--以下をaction Performedのなかで試してみよう
System.out.println((JButton)(e.getSource()).getText());
***13.5節を読んで,プログラム13.5を実行してください [#m16...
http://gyazo.com/dd4e103c011682b3a78b9ed0c8d5134b.png
http://gyazo.com/4755cce7280963b32050db455d265cc1.png
メニューアイテムにcommandという情報をつけて、ActionPerfor...
***演習13.2をやってください(メニュー項目は何でも良いです...
//演習ができそうにないという人は、飛ばして、次に進んでく...
http://gyazo.com/2d9c3b6534e7b87fcd3ec22be00d5fed.png
***13.6節を読んで,プログラム13.6を実行してください [#b8b...
教科書203ページのプログラム13.6の5行めのところに、
... implements ActionListener6: {
とありますが、これは、
... implements ActionListener {
の間違いのようです。
**終章 おまけ [#d58ba3ba]
***マウスイベント [#uf7f6e68]
マウスイベントを受け取るには、Mouse ListenerやMouse Motio...
以下のようにするとイベントをうけとれるます。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class MouseTest extends JFrame implements MouseLi...
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) {
MouseTest test = new MouseTest();
test.setTitle("MouseTest");
test.addMouseListener(test);
test.addMouseMotionListener(test);
test.setSize(400,300);
test.setVisible(true);
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
***サウンドファイルを再生する [#fc02c68a]
-以下のファイルをダウンロードしてください。
http://is.ocha.ac.jp/~siio/lecture/Sounds/Ping.aiff
(他にも、Basso.aiff Frog.aiff Hero.aiff Pop.aiff Submarin...
Blow.aiff Funk.aiff Morse.aiff Purr.aiff Tink.aiff
Bottle.aiff Glass.aiff Ping.aiff Sosumi.aiff
を置いておきました)
これを再生するプログラムを作ってみましょう。以下で再生で...
import java.io.*;
import javax.sound.sampled.*;
public class AudioPlay {
public static void main(String[] args) {
try{
File audioFile = new File("Ping.aiff");
AudioFormat format = AudioSystem.getAudioFi...
DataLine.Info info = new DataLine.Info(Clip....
Clip clip = (Clip)AudioSystem.getLine(info);
clip.open(AudioSystem.getAudioInputStream(audioFi...
clip.start();
clip.drain();
clip.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
***他の環境でのGUIプログラミングの例 [#g3af3031]
***X11 [#s742a4fc]
以下の内容の新しいファイル,buttontest.cを作ってください.
printfの逆スラッシュが正しくコピペできてないかもしれない...
入力が面倒なら,添付ファイルの
[[buttontest.c:http://is.ocha.ac.jp/~siio/index.php?plugi...
をダウンロードしてください.
#include <X11/Xlib.h>
#include <stdio.h>
int main (){
Display *display = XOpenDisplay (NULL);
XEvent event;
Window window = XCreateSimpleWindow(display, DefaultRoo...
XSelectInput(display,window,KeyPressMask | ButtonPressM...
XMapWindow(display, window);
XFlush(display);
while(1) {
XNextEvent(display,&event);
switch (event.type) {
case KeyPress:
printf("key\n");
break;
case ButtonPress:
printf("button down\n");
printf("button\n");
break;
case ButtonRelease:
printf("button up\n");
break;
}
}
return 0;
}
以下のコマンドでコンパイルしてください.
cc -L/usr/X11R6/lib -I/usr/X11R6/include buttontest.c -l...
出来上がったファイルを,./a.outで実行してください.
//////////////////////////////
*2015年12月10日 [#q0f74076]
**宿題提出 [#yd098ee1]
引数のURLをファイルにするプログラムと、
また、cat.jpgのファイル取得でまとめて読むことでどれくらい...
提出してください。
これらのjava, class, レポートのファイルをまとめて、出席番...
**第12章 Swing [#x23dde25]
***とても簡単なウィンドウ [#d42e1eab]
import javax.swing.JFrame;
public class SimpleWindow {
public static void main(String argv[]) {
JFrame f = new JFrame("私が作った最初の窓...
f.setSize(200,100);
f.setDefaultCloseOperation(JFrame.EXIT_ON...
f.setVisible(true);
}
}
*** JFrameを継承するプログラミング [#na0305a8]
import javax.swing.JFrame;
public class SimpleWindow extends JFrame {
public void initialize () {
this.setTitle("私が作った最初の窓");
this.setSize(200,100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main (String argv[]) {
SimpleWindow sw = new SimpleWindow();
sw.initialize();
}
}
***ラベルを表示するウィンドウ [#a53f05f8]
プログラム12.1を参考にして、上記の、継承を使ったプログラ...
Hello!という文字を出してみよう。
http://gyazo.com/c6efe47de19436f7564660377fe8b98c.png
解答例:
import javax.swing.*;
import java.awt.*;
public class SimpleWindow extends JFrame {
public void initialize () {
this.setTitle("私が作った最初の窓");
JLabel label = new JLabel("Hello!");
Container container = this.getContentPane();
container.add(label);
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String argv[]) {
SimpleWindow sw = new SimpleWindow();
sw.initialize();
}
}
***ボタンを2個表示するウィンドウ [#ibff2586]
プログラム12.2をみてください。
getContentPane()で得られたContainerに直接ボタンを貼付ける...
貼付けられるのは一つのボタンだけのようです。
パネルに2個のボタンを貼付け、それをContainerに貼付けるこ...
http://gyazo.com/03c28df2419065241b8736b7b69d7fd3.png
プログラム12.2を参考にして、継承を使ったプログラムによる...
2個のボタンを出してみよう。
http://gyazo.com/4c3086ae9b6b5434d2ea741369f731c5.png
解答例:
import javax.swing.*;
import java.awt.*;
public class SimpleButton extends JFrame {
public void initialize () {
this.setTitle("私が作った最初の窓");
JPanel panel = new JPanel();
JButton button1 = new JButton("button1");
JButton button2 = new JButton("button2");
panel.add(button1);
panel.add(button2);
Container container = this.getContentPane();
container.add(panel);
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String argv[]) {
SimpleButton sw = new SimpleButton();
sw.initialize();
}
}
このプログラムでは,ボタンを押しても何もおこりません.
ボタンが押されたイベントを受け取るためには,
+ActionListenerをimplementしたクラスを作る
+そのインスタンスを作る
+これをボタンにaddActionListener()で登録する
必要があります.
プログラム12.3を参考に,ボタンを押したらprintlnで次のよう...
http://gyazo.com/67d27d0588f4dd5d11410e1107165994.png
ヒント(最初の6行です)
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SimpleButton extends JFrame implements Acti...
JButton button1, button2;
public void initialize () {
解答例
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SimpleButton extends JFrame implements Acti...
JButton button1, button2;
public void initialize () {
this.setTitle("私が作った最初の窓");
JPanel panel = new JPanel();
button1 = new JButton("button1");
button2 = new JButton("button2");
button1.addActionListener(this);
button2.addActionListener(this);
panel.add(button1);
panel.add(button2);
Container container = this.getContentPane();
container.add(panel);
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed (ActionEvent e) {
if(e.getSource()==button1)
System.out.println("Hello");
else
System.out.println("Goodbye");
}
public static void main(String argv[]) {
SimpleButton sw = new SimpleButton();
sw.initialize();
}
}
***宿題:プログラム13.1のようにボタンを配置して、それぞれ...
まずは、プログラム12.4を見て、上記のプログラムを拡張して5...
なお、以下のようにすると、ボタンの名前を印刷することがで...
public void actionPerformed(ActionEvent e){
System.out.println(((JButton)e.getSource...
}
***どのボタンからのイベントであるかを識別する方法 [#d97f1...
-プログラム12.3では
--ボタンへの参照を、action Performedから参照できる変数に...
--action Performedの中で、e.get Source()してButtonのイン...
-プログラム12.4では、
--準備として button.set Action(button.get Text());でボタ...
-- action Performedの中で e.get Action Command()でアクシ...
-ということで以下のようなことも可能
--acttion Performedの中で、get Source()してボタンを得る
--そのボタンからget Textしてボタンの文字列を得て文字比較...
--ただし、get Sourceで得られるのはボタンの親クラスなのでB...
--以下をaction Performedのなかで試してみよう
System.out.println((JButton)(e.getSource()).getText());
*2015年11月26日 [#na589bf9]
**第11章 入出力 [#pf2ec256]
***整数を出力する例 [#y13a8e76]
import java.io.*;
public class DoutTest {
public static void main (String[] args) {
try {
FileOutputStream fout = new FileOutputStream("dout.da...
DataOutputStream dout = new DataOutputStream(fout);
dout.writeInt(100);
dout.close();
}catch (Exception e) {
System.out.println(e);
}
}
}
これでdout.datという名前のファイルができあがるはずです。 ...
od -h dout.dat
または
hexdump dout.dat
してみてください
e100:java siio$ hexdump dout.dat
0000000 00 00 00 64
0000004
***整数を入出力する例 [#if2620ba]
import java.io.*;
public class DoutTest {
public static void main (String[] args) {
try {
FileOutputStream fout = new FileOutputStream("dout.da...
DataOutputStream dout = new DataOutputStream(fout);
dout.writeInt(100);
dout.close();
FileInputStream finput = new FileInputStream("dout.da...
DataInputStream dinput = new DataInputStream(finput);
System.out.println(dinput.readInt());
dinput.close();
}catch (Exception e) {
System.out.println(e);
}
}
}
***プログラム11.3をやってみてください [#ze73dfb4]
作ったファイルを
od -h
または
hexdump
してみてください
http://gyazo.com/74c061dfe2fcd6b72885878f867c78ba.png
import java.io.*;
public class PrintWriterTest{
public static void main(String[] args) {
try {
//writer.txtというファイルを作って文字を書き込む
FileWriter fwriter = new FileWriter("writer.txt");
PrintWriter pwriter = new PrintWriter(fwriter);
pwriter.println(2006);
pwriter.println("Java教科書");
//fwriter.write("Java教科書");
pwriter.close();
}
catch (IOException e) {
System.out.println(e);
}
}
}
つぎに、プログラム11.4を参考にして、
このPrint Write Testに書き足して、
書き込んだデータを読み出して画面に表示するプログラムを作...
ヒント:
import java.io.*;
public class PrintWriterTest{
public static void main(String[] args) {
try {
//writer.txtというファイルを作って文字を書き込む
FileWriter fwriter = new FileWriter("writer.txt");
PrintWriter pwriter = new PrintWriter(fwriter);
pwriter.println(2006);
pwriter.println("Java教科書");
//fwriter.write("Java教科書");
pwriter.close();
ここに書き足す
}
catch (IOException e) {
System.out.println(e);
}
}
}
***文字ストリームをファイルに書いて読み込むプログラム [#v...
import java.io.*;
public class PrintWriterTest{
public static void main(String[] args) {
try {
//writer.txtというファイルを作って文字を書き込む
FileWriter fwriter = new FileWriter("writer.txt");
PrintWriter pwriter = new PrintWriter(fwriter);
pwriter.println("java 教科書" + 2001 );
pwriter.close();
//writer.txtのファイルの中身をSystem.out.printlnで表示...
FileReader freader = new FileReader("writer.txt");
BufferedReader breader = new BufferedReader(freader);
String tmp;
while( (tmp=breader.readLine() ) != null) {
System.out.println(tmp);
}
breader.close();
}
catch (IOException e) {
System.out.println(e);
}
}
}
***プログラム11.5をやってこれを拡張して演習11.2をやってく...
キーボードから1行入力された文字列によるテキストファイルを...
http://gyazo.com/f9aee7f492d574f870e85e2022df374c.png
ヒント
import java.io.*;
public class En112 {
public static void main(String[] args) {
try {
ここにプログラムを書く
}
catch(IOException e) {
System.out.println(e);
}
}
}
解答例
import java.io.*;
public class En112 {
public static void main(String[] args) {
try {
InputStreamReader ireader = new InputStreamReader (Sy...
BufferedReader breaderK = new BufferedReader(ireader);
String line = breaderK.readLine();
FileWriter fwriter = new FileWriter("writer.txt");
PrintWriter pwriter = new PrintWriter(fwriter);
pwriter.println(line);
pwriter.close();
FileReader freader = new FileReader("writer.txt");
BufferedReader breaderF = new BufferedReader(freader);
String tmp=null;
while( (tmp=breaderF.readLine()) != null)
System.out.println(tmp);
breaderF.close();
}
catch(IOException e) {
System.out.println(e);
}
}
}
***http://www.ocha.ac.jp/の内容を表示するプログラムを書い...
http://gyazo.com/13044fdd9d372118a1f6fe93896eadb3.png
ヒント1
import java.net.*;
が必要です。
URL targetURL = new URL("http://www.ocha.ac.jp/");
でURLクラスのインスタンスが得られる。
InputStream istream = targetURL.openStream();
でこれからInputStreamのインスタンスが得られる。
InputStreamReader isreader = new InputStreamReader(istre...
でこれからInputStreamReaderのインスタンスが得られる。
BufferedReader breader = new BufferedReader( isreader );
でこれからBufferedReader のインスタンスが得られる。
ヒント2
import java.io.*;
import java.net.*;
public class URLTest {
public static void main (String argv[]) {
try {
ここにプログラムを書く
} catch (IOException e) {
System.out.println("error...");
}
}
}
ヒント3:
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();
InputStreamReader isreader = new InputStreamReader(is...
BufferedReader breader = new BufferedReader( isreade...
ここで一行ずつ読み込む
} catch (IOException e) {
System.out.println("error...");
}
}
}
解答例:
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();
InputStreamReader isreader = new InputStreamReader(is...
BufferedReader breader = new BufferedReader( isreade...
String line;
while((line=breader.readLine()) != null) System.out.p...
} catch (IOException e) {
System.out.println("error...");
}
}
}
***写真ファイルのダウンロード [#h4816514]
http://is.ocha.ac.jp/~siio/cat.jpg
をダウンロードして、cat.jpgというファイルを作るプログラム...
データはテキストじゃなくて、バイナリーです。
ヒント1:
InputStreamのインスタンスに対してread()メソッドを使うと1...
1バイトのデータを書き出すなら、FileOutputStreamだけで可能...
ヒント2:
import java.io.*;
import java.net.*;
public class URLJpeg {
public static void main (String argv[]) {
try {
URL targetURL = new URL("http://is.ocha.ac.jp/~siio/c...
InputStream istream = targetURL.openStream();
FileOutputStream fout = new FileOutputStream("cat.jpg...
というインスタンスを作って、
istream.read()
で読んで、
fout.write(1バイト)
で書き出します。
解答例
import java.io.*;
import java.net.*;
//http://is.ocha.ac.jp/~siio/cat.jpg
//をダウンロードして、cat.jpgというファイルを作るプログ...
public class URLJpeg {
public static void main (String argv[]) {
try {
URL targetURL = new URL("http://is.ocha.ac.jp/~siio/c...
InputStream istream = targetURL.openStream();
FileOutputStream fout = new FileOutputStream("cat.jpg...
int aData;
while((aData = istream.read()) != -1) fout.write(aDa...
istream.close();
fout.close();
} catch (IOException e) {
System.out.println("error...");
}
}
}
***本日のレポート [#gfb7d787]
上記のプログラム(URLJpeg.java, URLJpeg.class) を、出席番...
***写真読み込みの高速化 [#c12193a9]
上記の例では写真データを1バイトずつ読み書きしていました。
InputStreamのメソッドを調べると、複数バイト単位で読み込む...
たとえば、512バイトずつ読み書きすることで、処理速度が向上...
そこで、複数バイト読み書きするよう、上記のプログラムを変...
実際にどの程度(実行速度にして何倍くらい)性能向上するか...
read
public int read(byte[] b)
throws IOException
入力ストリームから配列長さだけのバイト数を読み込もうとし...
実際に読み込まれたバイト数は整数として返されます。
戻り値は、バッファに読み込まれたバイトの合計数。ストリー...
を使って読みこみ、
write
public void write(byte[] b,
int off,
int len)
throws IOException
指定された byte 配列の、オフセット位置 off から始まる le...
を使ってください。
-ヒント
byte[] data = new byte[512];
という配列を用意して、
int datalength;
while(( datalength=istream.read(data)) != -1) fout.writ...
とします。
-解答例
import java.io.*;
import java.net.*;
//http://is.ocha.ac.jp/~siio/cat.jpg
//をダウンロードして、cat.jpgというファイルを作るプログ...
//データはテキストじゃなくて、バイナリーです。
public class URLJpeg2 {
public static void main (String argv[]) {
byte[] data = new byte[512];
try {
URL targetURL = new URL("http://is.ocha.ac.jp/~siio/c...
InputStream istream = targetURL.openStream();
FileOutputStream fout = new FileOutputStream("cat.jpg...
int datalength;
while(( datalength=istream.read(data)) != -1) fout.wr...
istream.close();
fout.close();
} catch (IOException e) {
System.out.println("error...");
}
}
}
ここでは512バイトを読み込むことにしました。でも、InputStr...
available()
この入力ストリームのメソッドの次の呼出しによって、ブロッ...
これを使えば、適切な長さを見積もれるかもしれません。
***引数のURLをファイルにするプログラムを考えてみましょう ...
curlというコマンドがあります。
curl http://ocha.ac.jp/
などとすると、htmlが見られますし、
curl http://is.ocha.ac.jp/~siio/cat.jpg > cat.jpg
などとすると、ファイルとして保存できます。これに近いプロ...
***宿題 [#z4996c31]
上記の引数のURLをファイルにするプログラムを作ってください。
また、cat.jpgのファイル取得でまとめて読むことでどれくらい...
レポートにしてください。レポートの書式は任意です。(テキ...
これらのjava, class, レポートのファイルをまとめて、出席番...
////////////////////////////////////////
**宿題提出 [#i696b9d3]
宿題の演習11.1の
プログラムのファイル(javaとclass)およびdata.datを、
学籍番号+名前のフォルダに入れて、zipで圧縮したファイルを...
*2015年10月29日 [#l69cd87f]
**第10章 Stringクラスとコレクションフレームワーク [#raff...
*** 入力した文字を逆に出力するプログラムを作る [#qa9843dd]
[e100:?/Documents/java] siio% java TestString ochanomizu
ochanomizu
uzimonahco
[e100:?/Documents/java] siio%
このソースは、
public class TestString {
public static void main (String argv[]) {
try{
System.out.println(argv[0]);
int len = argv[0].length();
for(int i = len - 1; i>=0; i--) {
System.out.print(argv[0].charAt(i));
}
System.out.println();
}
catch (Exception e) {
System.out.println("please input a word");
}
}
}
である。
***Linked List の練習 [#z4cca00f]
サンプルプログラムを実行するときは、
LinkedList<String> list = new LinkedList<String>();
などと定義すると良い。
***program 10.2 改造 [#p8d0055f]
Alice --> Bob --> Cindy --> DaveというLinkedListをつく...
それからtoArray()メソッドでString配列を作ってfor each文で...
***Hash Mapの練習 [#x4346953]
プログラム10.4を参考にして、
以下のように動作する英語ー日本語単語変換プログラムを作れ。
[e100:?/Documents/java] siio% java EtoJ banana
バナナ
[e100:?/Documents/java] siio% java EtoJ apple
りんご
[e100:?/Documents/java] siio% java EtoJ
Please input an English word
ヒント:
import java.util.*;
public class EtoJ{
public static void main(String args[]) {
HashMap<String,String> map = new HashMap<String,String>...
map.put("apple","りんご");
map.put("banana","バナナ");
map.put("orange","みかん");
map.put("pineapple","パイナップル");
map.put("grape","ぶどう");
map.put("peach","もも");
map.put("melon","メロン");
map.put("lemon","レモン");
try {
System.out.println(map.get(args[0]));
}
catch(Exception e) {
System.out.println("Please input an English word");
}
}
}
***本日の提出物 [#kafadd71]
EtoJ.javaとEtoJ.classをzipでまとめて提出してください。
***宿題 [#h81b1125]
159ぺーじから166ページを読んで、演習11.1をやってください。
書き出すファイルの名前はdata.datにしてください。
作ったファイルを
od -h dout.dat
または
hexdump dout.dat
してみてください。
このプログラムのファイル(javaとclass)およびdata.datを、...
-----------
**第9章 エラーと例外処理 [#m1d3775b]
次のプログラムを作って試してください。
引数が少ないとエラーが出るのを確認してください。
public class TestException {
public static void main(String argv[]){
System.out.println(argv[0]+" "+argv[1]);
System.out.println("Nice to meet you.");
}
}
エラーが出る可能性のある場所をtryでくくっておき、
エラーが出たらそれを細くする処置をcatchで指定します。
public class TestException {
public static void main(String argv[]){
try{
System.out.println(argv[0]+" "+argv[1]);
System.out.println("Nice to meet you.");
}
catch (Exception e) {
System.out.println("please input 2 words.");
}
}
}
*2015年10月22日 [#u5b4772b]
**第8章 継承 [#ja53857e]
継承の話をしました。
別のクラスを継承することで、
差分だけを書いて機能を拡張していくことができます。
http://gyazo.com/2c8ef14d8be63b9fc18c58d79f2f3879.png
*** Osaifuクラスを継承してOsaifuUSDクラスを作ってみよう [...
-OsaifuUSDクラスはアメリカで買い物をするときに便利な、ア...
-あたらしく追加するメソッドは以下です
-- void inUSD(int x) xドルをお財布に入金します。このと...
-- int outUSD(int x) xドルをお財布から出金します。この...
--1ドルは90円にしてください
//-スーパークラスのメソッドを上書きするメソッドは以下です
//-- void print() お財布の残高を円とドルで表示します
-OsaifuUSDクラスをテストするmain()メソッドでは次のことを...
-- OsaifuUSDインスタンスを一つ作ってそれをsaifu1という名...
-- OsaifuUSDインスタンスをもう一つ作ってそれをsaifu2とい...
--saifu1に1000円入金する
--saifu2に5ドル入金する
--saifu1とsaifu2が持っている金額を印刷する
--saifu1から2ドル出金してそれをsaifu2に入金する
--saifu1とsaifu2が持っている金額を印刷する
-動作例
http://gyazo.com/f51ea5895aaab32bb30b9a940d91515d.png
-ヒント:一行目はこれ
public class OsaifuUSD extends Osaifu {
-ヒント:mainはこんな感じ
public static void main(String argv[]) {
OsaifuUSD saifu1= new OsaifuUSD();
OsaifuUSD saifu2=new OsaifuUSD();
saifu1.in(1000);
saifu2.inUSD(5);
saifu2.inUSD(saifu1.outUSD(2));
saifu1.print();
saifu2.print();
}
-解答例
public class OsaifuUSD extends Osaifu {
public int outUSD(int usd) {
okane-=usd * 90;
return usd;
}
public void inUSD(int usd) {
okane+=usd * 90;
}
public static void main(String argv[]) {
OsaifuUSD saifu1 = new OsaifuUSD();
OsaifuUSD saifu2 = new OsaifuUSD();
saifu1.in(1000);
saifu2.inUSD(5);
saifu1.print();
saifu2.print();
saifu2.inUSD(saifu1.outUSD(2));
saifu1.print();
saifu2.print();
}
}
*** OsaifuUSDクラスの改造(1) [#y43b2389]
親のメソッドを活用しても良い
public class OsaifuUSD extends Osaifu {
public int outUSD(int usd) {
return ( out( use * 90) / 90 );
}
public void inUSD(int usd) {
in( usd * 90 );
}
…
}
*** OsaifuUSDクラスの改造(2) [#kf476dbc]
OsaifuUSDにprint()メソッドを追加して、
円表示の次の行に ( xxx USD ) と残高をUSD表示するようにし...
円表示を行う部分はスーパークラスOsaifuのインスタンスメソ...
http://gyazo.com/39a7b24a8c45e15ac55693592c2eb7cf.png
-解答例
public void print() {
super.print();
System.out.println("( " + (okane / 90) + " usd )" );
}
***小テスト練習(そのうち実施します) [#e20f3777]
以下のプログラムの中で、
クラス、インスタンス、サブクラス、スーパクラス、クラスメ...
インスタンス化、継承がどこで行われているのか確認してくだ...
(importで始まる一行目はまだ説明していない内容なので小テス...
import javax.swing.JFrame;
public class SampleWindow extends JFrame {
public static void main(String args[]) {
SampleWindow w = new SampleWindow();
w.setVisible(true);
}
}
***本日のレポート [#w6127b60]
今日作ったOsaifuUSD.javaと、OsaifuUSD.classを上記の方法で...
---------------
**第7章 [#ad617712]
*** つぎにOsaifuクラスにコンストラクタを追加してみよう [#...
-Osaifu() で残金0のインスタンスを作る
-Osaifu(int x) で引数を残金の初期値としたインスタンスを作る
ことができるコンストラクタを作ろう。
これをmainから呼んで、上記のプログラムと同じことをするた...
Osaifu saifu1 = new Osaifu(1000);//インスタンスを作る
//最初の保持金額を1000円にする
Osaifu saifu2 = new Osaifu(500);//インスタンスを作る
//最初の保持金額を500円にする
とすることになる。
***コンストラクタ解答編 [#d268ae97]
以下のコンストラクタを作ることになる。
Osaifu() { okane = 0; }
Osaifu(int x) { okane = x; }
これは以下のように書いても良い。
Osaifu() { this(0); }
Osaifu(int x) { okane = x; }
**第6章(復習) [#e4a87c0e]
***クラスとインスタンスの説明をしました [#ad9ed7a7]
-クラスは型、インスタンスはそれから作られたもの
--クラスがたいやきの焼き型だとすると、インスタンスはそれ...
--クラスは設計図でインスタンスはそれから作られたもの
-クラスとインスタンスそれぞれにメソッドと変数がある
--クラス変数 例:何個のインスタンスを作ったか?
--クラスメソッド 例:インスタンスを作れ
--インスタンス変数 例:ひとつのたいやきの重さ
--インスタンスメソッド 例:たいやきをxxグラム食べる
http://gyazo.com/bbdd3587977a172f7fa7f00c4f5787e0.png
*** Osaifuクラスを作ってみよう [#ca1c7039]
-Osaifuクラスからはインスタンスがたくさん作られる
--Osaifuクラスはお財布の設計図/工場、ここから実際のお財...
--工場出荷時の残金は0円だけど、その後、いろいろな値になる...
--ということで残金はインスタンス変数とすべきだろう
-Osaifuクラスには次のメソッド、変数が必要だろう
--残金を表すインスタンス変数 int okane
--お金を入金するインスタンスメソッド void in(int x);
--お金を出金するインスタンスメソッド int out(int x); 戻...
--残金を印刷するインスタンスメソッドがあってもよいだろう ...
http://gyazo.com/bd6eaafd220dc7ff791288089f293b28.png
-Osaifuクラスをテストするmain()メソッドでは次のことをやっ...
-- Osaifuインスタンスを一つ作ってそれをsaifu1という名前に...
-- Osaifuインスタンスをもう一つ作ってそれをsaifu2という名...
--saifu1に1000円入金する
--saifu2に500円入金する
--saifu1とsaifu2が持っている金額を印刷する
--saifu1から200円出金してそれをsaifu2に入金する
--saifu1とsaifu2が持っている金額を印刷する
public static void main(String argv[]) {
Osaifu saifu1 = new Osaifu();
Osaifu saifu2 = new Osaifu();
saifu1.in(1000);
saifu2.in(500);
saifu1.print();
saifu2.print();
saifu2.in(saifu1.out(200));
saifu1.print();
saifu2.print();
}
http://gyazo.com/c618901458edc1ba338cab87d2810157.png
-Osaifu.java 解答編
public class Osaifu {
int okane;
public void in (int x) { okane += x; }
public int out(int x) { okane -= x; return x; }
public void print() {
System.out.println( "okane = " + okane +" yen");
}
public static void main(String argv[]) {
Osaifu saifu1 = new Osaifu();
Osaifu saifu2 = new Osaifu();
saifu1.in(1000);
saifu2.in(500);
saifu1.print();
saifu2.print();
saifu2.in(saifu1.out(200));
saifu1.print();
saifu2.print();
}
}
--このプログラムでは残金がマイナスになってしまってもかま...
--このためには、例えばoutメソッドを以下のようにすれば良い
public int out(int x) {
if(x < okane ) {
okane = okane -x;
return x;
} else {
int nokori = okane;
okane =0;
return nokori;
}
}
*2015年10月15日 [#a4d81cbd]
**第5章 (つづき) [#rcaa2e55]
***for-each文は新しい手法なので練習しましょう [#x39aee0e]
-プログラム5.7の代わりに以下をやってみよう
class ArrayTest {
public static void main (String args[]) {
int[] vec = new int[3];
vec[0]=1;
vec[1]=2;
vec[2]=3;
for (int x: vec) {
System.out.println(x);
}
}
}
*** 演習 [#w05d8884]
mainの引数argsは、Stringの配列で、コマンドラインで起動し...
コマンドの後に続けた書いた文字が入っています。
args[0], args[1], args[2] .... をすべてfor-each文で
表示するプログラムを書いてみましょう。
http://gyazo.com/8d8effac163e0dc939e74f237d8507b1.png
ヒント:for(String s: args)を使います
-解答例
class ArgsTest2 {
public static void main (String args[]) {
for(String s: args)
System.out.println(s);
}
}
--args[]の文字をすべてfor-each文で表示する
javac ArgsTest2 cat dog cow fox
catdogcowfox
--args[]の文字をすべてfor-each文で+つけて表示する
javac ArgsTest2 cat dog cow fox
cat + dog + cow + fox
**第6章 クラスの基礎 [#k3cb68e0]
***クラスとインスタンスの説明をしました [#y120a75f]
-クラスは型、インスタンスはそれから作られたもの
--クラスがたいやきの焼き型だとすると、インスタンスはそれ...
--クラスは設計図でインスタンスはそれから作られたもの
-クラスとインスタンスそれぞれにメソッドと変数がある
--クラス変数 例:何個のインスタンスを作ったか?
--クラスメソッド 例:インスタンスを作れ
--インスタンス変数 例:ひとつのたいやきの重さ
--インスタンスメソッド 例:たいやきをxxグラム食べる
http://gyazo.com/bbdd3587977a172f7fa7f00c4f5787e0.png
-演習問題6.1, 6.2, 6.3
例えば以下のような実行結果が出るようにしてください
http://gyazo.com/deeb78a70a724a01ce76945235d42ab8.png
-Point3Dのメソッドを充実させて次のmain()メソッドで
10, 20, 30
-10, -20, -30
という結果が出るようにしましょう
public static void main(String argv[]) {
Point3D pt1 = new Point3D();
Point3D pt2 = new Point3D();
pt1.set(10, 20, 30);//インスタンス変数を...
pt2.set(-pt1.getx(), -pt1.gety(), -pt1.ge...
pt1.print();//インスタンスメソッド呼出
pt2.print();
}
-Point3Dに、他の点との距離を返すメソッド distance ( Point...
10, 20, 30
-10, -20, -30
74.83314773547883
という結果が出るようにしましょう
public static void main(String argv[]) {
Point3D pt1 = new Point3D();
Point3D pt2 = new Point3D();
pt1.set(10, 20, 30);//インスタンス変数を...
pt2.set(-pt1.getx(), -pt1.gety(), -pt1.ge...
pt1.print();//インスタンスメソッド呼出
pt2.print();
System.out.println(pt1.distance(pt2));
}
--解答例
double distance ( int ptx, int pty, int ptz ) {
int dx = ptx - this.x;
int dy = pty - this.y;
int dz = ptz - this.z;
return Math.sqrt(dx * dx + dy * dy + dz * dz);
}
double distance ( Point3D p ) {
return this.distance(p.getx(), p.gety(), p.getz());
}
**第7章 クラスとオブジェクトの操作 [#cb74f6ed]
*** 他の点との距離を返すメソッドの例を説明しました [#q51c...
double distance ( int ptx, int pty ) {
int dx = ptx - this.x;
int dy = pty - this.y;
return Math.sqrt(dx * dx + dy * dy);
}
double distance ( Point p ) {
return this.distance(p.getx(), p.gety());
}
distanceという名前は同じでも、引数の違いで、異なる動作を...
*** Osaifuクラスを作ってみよう [#a4695298]
-Osaifuクラスからはインスタンスがたくさん作られる
--Osaifuクラスはお財布の設計図/工場、ここから実際のお財...
--工場出荷時の残金は0円だけど、その後、いろいろな値になる...
--ということで残金はインスタンス変数とすべきだろう
-Osaifuクラスには次のメソッド、変数が必要だろう
--残金を表すインスタンス変数 int okane
--お金を入金するインスタンスメソッド void in(int x);
--お金を出金するインスタンスメソッド int out(int x); 戻...
--残金を印刷するインスタンスメソッドがあってもよいだろう ...
http://gyazo.com/bd6eaafd220dc7ff791288089f293b28.png
-Osaifuクラスをテストするmain()メソッドでは次のことをやっ...
-- Osaifuインスタンスを一つ作ってそれをsaifu1という名前に...
-- Osaifuインスタンスをもう一つ作ってそれをsaifu2という名...
--saifu1に1000円入金する
--saifu2に500円入金する
--saifu1とsaifu2が持っている金額を印刷する
--saifu1から200円出金してそれをsaifu2に入金する
--saifu1とsaifu2が持っている金額を印刷する
public static void main(String argv[]) {
Osaifu saifu1 = new Osaifu();
Osaifu saifu2 = new Osaifu();
saifu1.in(1000);
saifu2.in(500);
saifu1.print();
saifu2.print();
saifu2.in(saifu1.out(200));
saifu1.print();
saifu2.print();
}
http://gyazo.com/c618901458edc1ba338cab87d2810157.png
***本日のレポート [#x4688e18]
今日作ったOsaifu.javaと、可能ならばOsaifu.classを上記の方...
*2015年10月8日 [#s7f2474a]
**第3章 [#kac60e68]
-演習
--演習3.4をみて、自分の名前の最初の文字の文字コードを表示...
--arg[0]とarg[1]をprintlnの中で+でつないで表示する
http://gyazo.com/8159f78165e17781a7110de3763c833c.png
ヒント
class ArgsTest {
public static void main (String args[]) {
System.out.println(args[0]);
}
}
解答
class ArgsTest {
public static void main (String args[]) {
System.out.println(args[0] + " + " + args[1]);
}
}
**第5章 [#gc9fc2cb]
***演習 [#odb3bb66]
-演習問題5.4(変更)
乱数を10個表示する
public class Score {
public static void main (String argv[]) {
int i,a;
for(i=0;i<10;i++) {
a=(int)(Math.random() * 100);
System.out.println(a);
}
}
}
次にこの乱数を点数とみなして、演習問題5.4の基準に従ってAB...
動作例を以下に示す。
http://gyazo.com/829b04a7fc82cdfe9dd0dfa650af873e.png
解答例:
public class Score {
public static void main (String argv[]) {
int i,a;
for(i=0;i<10;i++) {
a=(int)(Math.random() * 100);
System.out.print(a + " ");
if(a<40) System.out.println("D");
else if(a<60) System.out.println("C");
else if(a<80) System.out.println("B");
else System.out.println("A");
}
}
}
-演習問題5.5をやってみよう
http://gyazo.com/1733defca0c709c41c69ea729320ab61.png
解答例:
class Kinri {
public static void main (String args[]) {
double okane=100000;
int year;
year=1;
while(okane < 200000) {
okane = okane * 1.05;
System.out.println("year = " + year + " okane= " + ok...
year++;
}
}
}
現在の普通預金の金利0.04%だと倍になるのに何年かかるだろう...
http://gyazo.com/95cd94db39b407e7961355b20da8fc67.png
-演習5.6をやってみよう
while文をfor文に変えてみる
解答例:
class Kinri {
public static void main (String args[]) {
double okane=100000;
int year;
for(year=1;okane < 200000; year++) {
okane = okane * 1.05;
System.out.println("year = " + year + " okane= " + ok...
}
}
}
***本日のレポート [#c0b30188]
今日作ったKinri.javaとKinri.classを以下の方法で提出してく...
** 出来上がったプログラムの提出方法 [#qc79505e]
- フォルダを作ってその中にjavaファイルとclassファイル
//と、取扱説明書ファイルと、それ以外に必要なファイルがも...
を入れてください。
//フォルダの中のclassファイルをダブルクリックしたらプログ...
-このフォルダに名前を付けてください。フォルダの名前は、「...
-このフォルダを圧縮してください
--フォルダを選択してファイルメニューから圧縮を選択します
-圧縮したファイルを以下の手順で
/home/isstaff/siio/Public/Drop Box/.
に提出してください。ターミナル.appからなら
cp 123456siioitiro.zip /home/isstaff/siio/Public/Drop\ Box
としてください。ファインダーからなら、メニューから「移動...
以下のように入力して、移動ボタンを押して、そこに現れるド...
http://is.ocha.ac.jp/~siio/gyazo/dropbox.png
--書き込み専用なので確認できないけどokですかという意味の...
-レポート提出用フォルダは書き込み専用で見ることができませ...
-授業中でしたら、[[ココを見ると:http://is.ocha.ac.jp/~sii...
-同じ名前のフォルダを投げ込むと、エラーになります。という...
**欠席状況 [#d6071b04]
3/4以上出席してください。(欠席は3回まで)欠席4回で自動的...
欠席3回以下なら不可にはなりませんが、成績が下がるかもしれ...
//ので、心当たり無ければ連絡ください。
//|学籍番号|欠席回数|判定|
//||||
//(2015/1/22現在)
**javaのマニュアル [#wbbeb93e]
http://docs.oracle.com/javase/jp/8/api/
**教科書 [#pb2ce7ad]
http://gyazo.com/de3288074dae1c75f6df4ef3c0b9b3d4.png
http://www.amazon.co.jp/dp/4883732258/
買ってください。もしくは、先輩から安く譲ってもらってくだ...
** この講義の目的 [#y8b25542]
+Javaでプログラムする
+オブジェクト指向の概念を理解してプログラミングする
+GUIプログラミングをする
** この講義の順序 [#ucbfc8ec]
+Javaになれる(C言語などのプログラミング手法の復習)
+オブジェクト指向について理解する
+GUIプログラミングについて理解する(イベント駆動)
+お絵描きプログラムを作ってみる
** 成績評価 [#re4e7246]
+お絵描きプログラムの完成度,作り込み
+毎回の宿題の達成(参考程度)
+出席状況(参考程度)
*2015年10月1日 [#l6a0cf97]
**第1章および第2章 [#z8a3e08a]
*** Mac OS XでJavaを使う [#pbd34d70]
Mac OS XはJavaと相性が良く、最初からjavaがインストールさ...
ということでWindowsより簡単に(というか何もしなくても)ja...
*** terminalを起動する [#vdc7cf07]
//#ref(How2Java/terminal.png)
http://is.ocha.ac.jp/~siio/gyazo/7366bfab668207c6598c4d88...
- terminalは、/Applications/Utilities/の中にあります。
ちなみに、/Applicationsはファインダでは/アプリケーション...
/Applications/Utilities/は、/アプリケーション/ユーティリ...
- ダブルクリックすると起動します。
よく使うことになると思いますので、dockにドラッグアンドド...
登録しておくと良いかと思います。(うちの子はこのアイコンを...
- メニューのターミナル/環境設定...を開きます。
ここで、テキストを選んで、「テキストをアンチエイリアス処...
チェック入れておくとフォントが奇麗なのでおすすめです。
http://is.ocha.ac.jp/~siio/gyazo/8aa6f5ab8878bc57c0657b94...
- おなじウィンドウの「詳細」に、「文字エンコーディング」...
Javaの場合、ここで「Unicode (UTF-8)」を選んでおきましょう。
(日本語コードにはいろいろな種類があって混乱しますが、21...
//http://gyazo.com/1b36039be113ef9e8ed04842aaeb3da6.png
- ターミナルから、javac helpとタイプしてみてください。Jav...
オプションの説明が日本語で出てくると思います。
--最近のMac OS X (Mountain Lionなど)では、Javaが標準で入...
その場合は、ダインロードするかどうか聞かれますので、ダウ...
--ここでの日本語表示が化けていたら、javaがUnicodeじゃなく...
-JavaをUnicodeで動かす(前項で文字化けした場合の対処)
--javacを起動するときに、javac -J-Dfile.encoding=UTF-8 と...
--javaを起動するときには、java -Dfile.encoding=UTF-8 とオ...
--面倒なので、.bash_profileに登録しておきましょう
-- ~/.bash_profileを開いて以下の行を追加します
alias javac='javac -J-Dfile.encoding=UTF-8'
alias java='java -Dfile.encoding=UTF-8'
*** miを用意しておく [#kabf13aa]
http://is.ocha.ac.jp/~siio/gyazo/2c0e58d1b83d396e1fbe6f5d...
- Javaのプログラムを作るエディタです。一番簡単にはtermina...
エディタを呼び出せば良いです。
- でも日本語の設定などが結構難しいので、GUIベースのエディ...
- いくつかありますが、おすすめの一つはmi (みみかきエディ...
- miを使うには、http://www.mimikaki.net/からダウンロード...
- これも便利なのでdockに入れておくとよいと思います。
http://is.ocha.ac.jp/~siio/gyazo/7579915fefe1ecd9c0e4e2dd...
*** 超簡単なプログラム(hello world)を作ってみる [#u8bc5ec3]
- ターミナルから、vi Hello.javaとかemacs Hello.javaとかpi...
もしくは、miを起動してファイル/新規/javaを選んで新しい...
- ここで、以下のようなプログラムを書いてみます。
class Hello {
public static void main (String args[]) {
System.out.println("hello java world!");
}
}
-このときmiで改行コードをLF (UNIX)にしておいてください。...
http://is.ocha.ac.jp/~siio/gyazo/20121004010107.png
- これをHello.javaという名前で保存して、コンパイル実行し...
javac Hello.java (コンパイルする)
java Hello (実行する。.javaなどの拡張子は不要)
hello java world! (結果)
- 次に簡単なウィンドウを出してみましょう。
授業の最後の方で紹介する,Swingというフレームワークを使っ...
import javax.swing.JFrame;
public class SimpleWindow {
public static void main(String argv[]) {
JFrame f = new JFrame("私が作った最初の窓...
f.setSize(200,100);
// f.setDefaultCloseOperation(JFrame.EXIT_...
f.setVisible(true);
}
}
これをSimpleWindow.javaという名前で保存して、
javac SimpleWindow.java
java SimpleWindow
とタイプしてコンパイル/実行します。
このプログラムは,ウィンドウのクローズボタンを押しても終...
プログラムを停止するには,ターミナルでコントロール-cを押...
#ref(How2Java/simplewindow.png)
***本日のレポート [#a0ea5b22]
今日作ったSimpleWindow.javaとSimpleWindow.classを以下の方...
** 出来上がったプログラムの提出方法 [#y9911f6d]
- フォルダを作ってその中にjavaファイルとclassファイル
//と、取扱説明書ファイルと、それ以外に必要なファイルがも...
を入れてください。
//フォルダの中のclassファイルをダブルクリックしたらプログ...
-このフォルダに名前を付けてください。フォルダの名前は、「...
-このフォルダを圧縮してください
--フォルダを選択してファイルメニューから圧縮を選択します
-圧縮したファイルを以下の手順で
/home/isstaff/siio/Public/Drop Box/.
に提出してください。ターミナル.appからなら
cp 123456siioitiro.zip /home/isstaff/siio/Public/Drop\ Box
としてください。ファインダーからなら、メニューから「移動...
以下のように入力して、移動ボタンを押して、そこに現れるド...
http://is.ocha.ac.jp/~siio/gyazo/dropbox.png
--書き込み専用なので確認できないけどokですかという意味の...
-レポート提出用フォルダは書き込み専用で見ることができませ...
-授業中でしたら、[[ココを見ると:http://is.ocha.ac.jp/~sii...
-同じ名前のフォルダを投げ込むと、エラーになります。という...
---------
*ヒューマンインタフェース 2015年前期 [#l6fbe8d2]
**出席状況 [#e499ad62]
学部「ヒューマンインタフェース」は出席重視の授業です.そ...
授業回数が15回程度と見込まれますので,欠席が4回を超えた場...
//以下に(初回の4/10を除く)授業全体の欠席状況を示してお...
欠席回数は成績に大きく影響しますので、間違いありましたら...
//|学籍番号|欠席回数|出席点|
//|1320538 | 0| |
|学籍番号|4月17日|4月24日|5月1日|5月8日|5月15日|5月22日|5...
|1320501|欠|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320502|欠|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320504|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320505|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320506|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320507|出|出|出|出|出|出|出|出|出|出|欠|欠|出|出|
|1320508|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320509|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320510|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320511|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320512|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320514|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320516|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320517|出|出|出|出|出|出|出|出|出|出|出|出|出|欠|
|1320518|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320519|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320520|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320522|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320523|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320525|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320526|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320527|出|出|欠|出|出|出|出|出|出|出|出|出|出|出|
|1320528|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320529|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320530|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320531|出|出|出|出|出|出|出|出|出|出|出|欠|出|出|
|1320532|出|出|出|出|欠|出|出|出|出|出|出|出|出|出|
|1320533|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320534|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320535|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320536|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320537|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320539|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320540|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320541|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320542|出|欠|出|出|出|出|欠|欠|出|欠|欠|欠|欠|欠|
|1320543|出|出|出|出|出|出|出|出|出|出|欠|出|出|出|
|1320544|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1220527|出|出|出|出|出|出|出|出|欠|出|出|欠|出|欠|
|1220529|出|出|欠|出|出|出|出|出|出|出|欠|出|出|出|
|1220533|出|出|出|出|出|出|出|出|出|出|出|出|出|出|
** ヒューマンインタフェースのレポート 2015年前期 [#da2caa...
//案内が遅れてすみません。案内が遅れたことを配慮して締め...
** レポートのお知らせ [#jec37251]
- 提出は任意です.もし良いレポートを提出いただけたら出席...
- 締め切り2015年9月11日金曜日
-形式分量:A4, ページ数は2-3ページ程度
-提出先・提出方法:PDFにしてsiio@mac.comまでメール添付で...
--メールの標題は「ヒューマンインタフェースレポート: 13205...
//--提出いただいた方はここのページでお知らせします。提出...
--提出いただいた方は以下のとおりです。提出してしばらく経...
自分の番号がなかなか表示されない場合は,受付されていない...
(提出を確認出来るよう締め切りより早めに提出していただくこ...
|学籍番号もしくはペンネーム|
|1320501|
|1320502|
|1320504|
|1320508|
|1320512|
|1320514|
|1320516|
|1320523|
|1320525|
|1320530|
|1320536|
|あこがれは早寝早起き|
|ヒューマン|
//|学籍番号|受理日|
//| 1320516 |2015年8月19日|
//| 1120506 |2013年9月6日|
//| 1120513 |2013年9月6日|
//| 1120503 |2013年9月6日|
//| 1120532 |2013年9月6日|
//| 1120537 |2013年9月6日|
//| 1120507 |2013年9月6日|
//| 1120528 |2013年9月6日|
**レポートの課題 [#r9d045a2]
+身の回りの携帯機器、家電製品、機械製品、コンピュータソフ...
道具、日用品、調度品、設備などから、
使いにくいと思われる道具を見つけ出して欲しい。
+そして、それがなぜ使いにくいのかを、
授業で説明した、
制約、マッピング、Affordance、モデル、
エラー対策、 標準化、直接操作、メタファー、モードなどの用...
(全部の用語を使う必要は無い)
+また,自分ならこのように設計して使いやすくするというアイ...
これも授業で使った用語を交えて、述べよ.
** ヒューマンインタフェースの予定 2015年前期 [#ra45c3dc]
-4/10
-4/17
-4/24
-5/1
-5/8
-5/15
-5/22
-5/29
-6/5 休講日のため授業はありません
-6/12
-6/19
-6/26
-7/3
-7/10
-7/17
-7/24
-7/31 試験週間のため授業はありません
//**宿題
//
//***人の反応速度を測定するプログラムを作って測定してくだ...
//-連休明けの授業(5/15)の開始時に、A4, 1枚(両面印刷でも可...
//--用紙の上辺に学籍番号、学年、氏名を1行で書いておいてく...
//-C 言語では,次のようなプログラムで、”hit now”という文字...
//--http://is.ocha.ac.jp/~siio/hci/hitnow.c
//--このプログラムは固定時間(5秒)後にhit nowが表示され...
//-これによりあなたの応答速度を複数回実測して、人の応答速...
//-また個人差や年齢などで結果は変わるかもしれません。周り...
//-また何度も測定することで、習熟して速度が向上したり、そ...
//--そのような現象が観察できたら、これも報告してください...
//***GUI黎明期のPC性能を調べてください(2014.4.17) [#ba9db...
//-GUI黎明期PCのCPU名、CPUクロック、メモリ容量、画素数を...
//--現在,Windows を使っている人は,最初の Windows が出荷さ...
//--Mac OS Xを使っている人は,1984に出荷された最初の Macin...
//-今あなたが使っているコンピュータと比較してください.
//-次回の授業(4/24)最初に配布するA5サイズの用紙に各自で記...
**教科書 [#ta8dbb5f]
http://ec2.images-amazon.com/images/I/51SsP4P1UiL._SL500_...
http://www.amazon.co.jp/dp/4781912605/
**授業資料 [#s6bf1fc3]
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c1...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c2...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c3...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c4...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c5...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c6...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c7...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c8...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c9...
+http://is.ocha.ac.jp/~siio/lecture/humaninterface/HCI_c1...
(授業開始直前や直後に差し替えされている可能性があります。)
**教科書サポートページ [#b385f64d]
-http://is.ocha.ac.jp/~siio/index.php?CSL11HCI
**宿題:ボタンを押すたびに点灯/消灯を繰り返す(トグルす...
以下は、Arduinoの2ピンに接続された押しボタンスイッチを押...
ちなみにHIGHとLOWはintの値で、int型の変数で保存することが...
int outpin=13; //An LED is connected to ping 13
int inpin=2; //A switch is connected to pin 2
void setup() {
// initialize the digital pin as an output and input.
pinMode(outpin, OUTPUT);
pinMode(inpin, INPUT);
}
void loop() {
if ( digitalRead(inpin) == HIGH) {
digitalWrite(outpin, LOW); // set the LED on
}
else {
digitalWrite(outpin, HIGH); // set the LED off
}
delay(30); // wait for 30 msecond
}
**宿題:人の反応速度を測定するプログラムを作って測定して...
-連休明けの授業(5/8)の開始時に、A5, 1枚に書いて提出してい...
-C 言語では,次のようなプログラムで、”hit now”という文字を...
--http://is.ocha.ac.jp/~siio/hci/hitnow.c
--このプログラムは固定時間(5秒)後にhit nowが表示されま...
-- 乱数を使って表示までの時間を変える改良をしてもらっても...
-これによりあなたの応答速度を実測して、人の応答速度が 300...
*情報と職業 2015年前期 [#c8fe3d5e]
**出席表 [#nea59682]
間違いがあったら至急連絡ください。欠席回数が5回以上は単位...
|学籍番号|履修|4月16日|4月23日|4月30日|5月14日|5月21日|5...
|1220507|聴講|出|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1220510||出|出|出|出|出|出|出|出|出|欠|出|出|出|出|
|1220521|取消|出|欠|出|出|出|欠|出|出|欠|欠|欠|欠|欠|欠|
|1220522|未履修|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1220530|未履修|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1220533||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1220534||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1220541||出|出|出|出|出|欠|出|出|出|出|出|出|出|欠|
|1320501||欠|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320502|未履修|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320504||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320505||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320506|未履修|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320507||出|出|出|出|出|出|出|出|出|出|欠|出|欠|出|
|1320508|聴講|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320509||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320510|未履修|出|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320511|未履修|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320512||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320514||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320516||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320517||出|出|出|出|出|出|出|出|出|出|欠|出|出|欠|
|1320519||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320520||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320522||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320523|未履修|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320524|取消|出|出|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320525|未履修|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320526|取消|出|出|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320528||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320529||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320530||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320531||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320532|未履修|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320533|聴講・取消|出|出|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|...
|1320534|未履修|出|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320535||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320536||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320537||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320538||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320539|未履修|出|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|欠|
|1320540||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320541||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
|1320542||出|出|欠|欠|出|出|出|出|出|欠|欠|欠|出|出|
|1320543||出|出|欠|出|出|出|出|出|出|出|出|欠|出|出|
|1320544||出|出|出|出|出|出|出|出|出|出|出|出|出|出|
** 情報と職業のレポート 2015年前期 [#b0264ee8]
//レポートを予定しています。
//案内が遅れてすみません。案内が遅れたことを配慮して締め...
//** レポートのお知らせ [#m0a091c4]
- 提出は任意です.もし良いレポートを提出いただけたら出席...
- 締め切り2015年9月11日金曜日
-形式分量:A4, ページ数は1ページ
-提出先・提出方法:PDFにしてsiio@mac.comまでメール添付で...
--メールの標題は「情報と職業レポート: 13205XX」としてくだ...
//--提出いただいた方は以下でお知らせします。提出してしば...
--提出いただいた方は以下のとおりです。提出してしばらく経...
自分の番号がなかなか表示されない場合は,受付されていない...
|学籍番号|受理日|
|1320501|2015年9月6日|
|1320505|2015年9月11日|
|1320516 |2015年8月28日|
|1320520|2015年9月9日|
|1320530|2015年9月11日|
|1320538|2015年9月9日|
|1220510|2015年9月1日|
|1220534|2015年9月11日|
**レポートの課題 [#a01a233b]
情報関連企業のなかで、将来性があると思う企業(就職したら...
//1982年にIBMが発売したIBM PCは,その後のパーソナルコンピ...
//
//-IBMがPC業界で主導権を失っていった理由を述べよ
//-あなたが,もし,IBMがPC分野で最盛期を迎えたころにIBM P...
//[[ジム・キャナビーノ (James Cannavino) //:http://jibun....
//の立場だったとしたら,この事態をどう立て直すだろうか....
** 情報と職業の予定 2015年前期 [#l87a1bee]
-4/9
-4/16
-4/23
-4/30
-5/7 月曜授業日のため授業はありません
-5/14
-5/21
-5/28
-6/4
-6/11
-6/18
-6/25
-7/2
-7/9
-7/16
-7/23
-7/30 試験週間ですので授業ありません
**欠席状況 [#f9411eca]
学部「情報と職業」は出席重視の授業です.そのため70%以上出...
授業回数を15回程度と考えて、欠席が4回を超えた場合は単位を...
(欠席には病欠を含みます)。.
//以下に授業全体の欠席状況を示しておきます.
欠席回数は成績に大きく影響しますので、間違いありましたら...
また、病欠、公欠などは成績に影響しないよう考慮します。
証明する書類を持って申し出てください。
//|学籍番号|欠席回数|出席点|
//|1120501|9|不可|
**宿題 (5/21提出) [#fe0f0b67]
Googleで必死に検索してください。ぐぐりまくってください。
他のページの広告にどういう影響がでたか、教えてください。
(5/21の授業開始時に配布する用紙(A5)にその場で記入してい...
**宿題 (5/14提出) [#m1407974]
身の回りの製品で、原価から考えて著しく格安な情報機器(ハ...
(5/14の授業開始時に配布する用紙(A5)にその場で記入してい...
**シラバス [#pe2c86fd]
-第1章 デジタル時代
--情報システムと生活/ビジネス/暮らし
--デジタル情報システムと生活/ビジネス/暮らし
--新しい事業のモデル。大量生産、コスト積み上げ、ものづく...
--デジタルである事
--アナログ(レコード,写真,電話)デジタルの違い、なぜデ...
--アナログ情報(新聞、音楽レコード)は物を伴う、デジタル...
-第2章 マルチメディアシステム
--マルチメディアシステム
--デジタル情報は劣化しないけど、アナログ情報産業は長らく...
--数字から文字,文字から画像音声、CDの容量を計算しよう。
--画像と動画のデータ量、グラビア写真の容量を計算しよう。...
--画素とは
--デジカメの画素
--圧縮の効果
-第3章 情報社会の無料と格安
--格安のハード
--大量生産(フォードの自動車)
--家庭用ゲーム機
--携帯電話商法
--サプライで収益
--有料サイト囲い込み
--無料のソフトウェア
--フリーウェア
--シェアウェア
--無料で配布ーシェア拡大ー技術支援で課金(コンサルタント,...
--無料のサイト(サービス)
--GNUの思想, 寄付(シェアウェア)
--広告で収入
--技術力を示しビジネスにつなげる
-第4章 WWW
--WEB以前の世界
--WEBの歴史
--ブラウザの変遷
--検索エンジン以前の世界
--検索エンジン
--新規なビジネス形態
--新しいコミュニティ
--フォークソノミー(folksonomy)
--クラウドコンピューティング
-第5章 互換ビジネス(コンパチブル,コンパチ)
--大型計算機の互換機
--互換マイクロプロセッサ
--パーソナルコンピュータの互換機
--互換機との戦い
--プリンタの互換機
-第6章 情報関連企業のビジネス戦略
--格安のハードウェア,ソフトウェア,サービス
--webの発達
--ビジネスモデル
--企業はどこで儲けているのか.どこが稼ぎ場所なのか.
-第7章ユビキタスコンピューティング
--今後の情報技術と生活
------------------
*昨年度以前の講義の情報 [#tb9e7d3e]
- LectureOld
------
このページについてのお問い合わせはsiio@is.ocha.ac.jpまで。
ページ名: