Java言語 第1回



Similar documents
Microsoft PowerPoint - prog11.ppt

Microsoft PowerPoint - prog11.ppt

Microsoft PowerPoint - prog12.ppt

Java言語 第1回


Microsoft PowerPoint - OOP.pptx

Microsoft PowerPoint prog1_doc2x.pptx

PowerPoint Presentation

Assignment_.java /////////////////////////////////////////////////////////////////////// // 課題 星の画像がマウスカーソルを追従するコードを作成しなさい 次 ///////////////////

Java言語 第1回

< F2D B825082CC96E291E82E6A7464>

< F2D82518E9F8AD CC95BD8D7388DA93AE2E6A7464>

< F2D834F838C A815B A CC>

< F2D B838A835882CC8CF68EAE2E6A7464>

< F2D89BA8EE882C E6A7464>

< F2D F B834E2E6A7464>

< F2D E E6A7464>

< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

Microsoft PowerPoint prog1_doc2.pptx

Local variable x y i paint public class Sample extends Applet { public void paint( Graphics gc ) { int x, y;... int i=10 ; while ( i < 100 ) {... i +=

< F2D82B682E182F182AF82F12E6A7464>

< F2D A839382CC906A2E6A7464>

< F2D825282CC947B909482CC A815B83682E6A>


< F2D A838B838D96402E6A7464>

ガイダンス

ガイダンス

ガイダンス

< F2D8EA CE909482CC92EA82852E6A7464>

< F2D82518CC282CC D2E6A7464>

GUIプログラムⅣ

< F2D92DE82E8914B82CC977088D32E6A7464>

<4D F736F F F696E74202D AC C8899E D834F E >

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

I. (i) Foo public (A). javac Foo.java java Foo.class (C). javac Foo java Foo (ii)? (B). javac Foo.java java Foo (D). javac Foo java Foo.class (A). Jav

r4.dvi

HCI プログラミング 8 回目ボタン チェックボックス ラジオボタン 今日の講義で学ぶ内容 ボタンとアクションイベント ボタンのカスタマイズ チェックボックスとラジオボタン ボタンとアクションイベント 1 ボタンを配置してみましょう ボタンは ラベルと同じようにフォントやその色 画像の貼り付けなど

GUIプログラムⅤ

問1

KeyListener init addkeylistener addactionlistener addkeylistener addkeylistener( this ); this.addkeylistener( this ); KeyListener public void keytyped

Microsoft PowerPoint - OOP.pptx

次の演習課題(1),(2)のプログラムを完成させよ


GUIプログラムⅡ

ガイダンス

Java演習(9) -- クラスとメソッド --

IE6 2 BMI chapter1 Java 6 chapter2 Java 7 chapter3 for if 8 chapter4 : BMI 9 chapter5 Java GUI 10 chapter6 11 chapter7 BMI 12 chap

JAVA入門

表示の更新もそういた作業のひとつに当たる スレッドの使用アニメーション アニメーションやシミュレーションなどは画面の更新が一定のタイミングで行われていく この連続した画面の更新をスレッドを利用して行う しかし paint() メソッドを直接呼び出して表示を更新することはできない その理由

ガイダンス

2

教材ドットコムオリジナル教材 0から始めるiアフ リ リファレンス i アプリ簡易リファレンス ver i アプリ Java 独自のメソッド (1)iアプリの命令を使えるようにする import com.nttdocomo.ui.*; (2) 乱数を使う import java.u

Microsoft PowerPoint ppt

awt の主要なクラスを下記に示す クラス Component Container Button Label Panel Frame 説明画面にユーザインターフェイス要素として表示し, ユーザとのやり取りを行うコンポーネントを表すすべてのコンポーネントのスーパークラスになる ほかのコンポーネントを含

r3.dvi

Safari AppletViewer Web HTML Netscape Web Web 15-1 Applet Web Applet init Web paint Web start Web HTML stop destroy update init Web paint start Web up

2008 e-learning T050050

< F2D BCA82CC978E89BA82CC8EC08CB12E6A7464>

HCI プログラミング 10 回目テキストフィールドとキーイベント 今日の講義で学ぶ内容 テキストフィールドの利用 キーイベントの処理 テキストフィールドの利用 1 テキストフィールドを配置してみましょう テキストフィールドを用いることにより 数値や文字列などのデータ入力が可能になります ソースファ

ソフトウェア開発方法論2

text_13.dvi

I 4 p.2 4 GUI java.awt.event.* import /* 1 */ import mouseclicked MouseListener implement /* 2 */ init addmouselistener(this) this /* 3 */ this mousec

Chapter JDK KeyListener keypressed(keyevent e ) keyreleased(keyevent e ) keytyped(keyevent e ) MouseListener mouseclicked(mouseeven

アプレットの作成

PowerPoint プレゼンテーション

橡告改.PDF

Microsoft PowerPoint - prog10.ppt

PowerPoint プレゼンテーション

Java言語 第1回

アジェンダ 1 グラフィカルなインタフェース GUI(Graphical User Interface) の基礎 2 Swing を利用する Swing の基礎知識 2

Applet java.lang.object java.awt.component java.awt.container java.awt.panel java.applet.applet

10/31 Java AWTの基本構造(Frameクラスの継承) 演習課題資料

Java 2 - Lesson01

Prog2_11th


Object MenuComponent MenuBar MenuItem Menu CheckboxMenuItem

Microsoft PowerPoint - prog10.ppt

Microsoft PowerPoint ppt

PowerPoint プレゼンテーション

教材ドットコムオリジナル教材 0から始めるiアプリ (4) 0 から始める i アプリ (4) i アプリをプログラミングする際に必要なのは Java というプログラミング言語の基礎知識です 独自の命令や駆使してプログラミングをするわけですが Java というベースになっている言語を知らないでプログ

PowerPoint プレゼンテーション

Prog1_12th

I. (i) Java? (A). 2Apples (B). Vitamin-C (C). Peach21 (D). Pine_Apple (ii) Java? (A). Java (B). Java (C). Java (D). JavaScript Java JavaScript Java (i

Microsoft PowerPoint - lec06 [互換モード]

Microsoft Word - Java3.DOC

手書認識 グラフ描画 Step2-2 手書認識 : 認識結果を PaintPanel で描画する < 属性付き文字列 AttributedString> 標準出力では分かりにくいうえに認識結果を使えないので 認識するごとに PaintPanel に文字を描画することにする ここで 数式はただの文字列

以下に java.awt.graphics クラスの主なメソッドを示す (Graphics クラスの ) メソッド drawline(int x1, int y1, int x2, int y2) drawrect(int x, int y, int width, int height) fillr

Java講座

Prog2_12th

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy

JavaScript 演習 2 1

Java 2 - Lesson01

19 3!! (+) (>) (++) (+=) for while 3.1!! (20, 20) (1)(Blocks1.java) import javax.swing.japplet; import java.awt.graphics;

Prog2_9th

Chapter 20. [ ] ; [ ] = new [ ] ; Color colors [ ] = new Color[ 20 ]; // 20 Button operations [ ] = new Button[ 10 ]; // 10 colors[ 3 ] = new Color( 1

Graphical User Interface 描画する

C#の基本

// ステージを設定します stage.setscene(scene); stage.settitle(" キャンバス "); // ステージを表示します stage.show(); public static void main(string[] args) launch(args); キャンバス

ToDo: 今回のタイトル

I HTML HashMap (i) (ii) :.java import java.net.*; import java.io.*; import java.util.hashmap; public class SimpleStopWatch { public static voi

Transcription:

Java 言語 第 8 回ウインドウ部品を用いる (1) 知的情報システム工学科 久保川淳司 kubokawa@me.it-hiroshima.ac.jp

前回の課題 (1) マウスを使って, 前回課題で作成した 6 4 のマスの図形で, \ をマウスクリックによって代わるようにしなさい

前回の課題 (2) import java.applet.applet; import java.awt.*; import java.awt.event.*; /* <APPLET CODE="JaMouseKadai.class" WIDTH=300 HEIGHT=200> </APPLET>*/ public class JaMouseKadai extends Applet{ int pos[][] = new int[6][4]; // pos[][] は 2 次元配列であり, そのポジションの図形を表す public void init() { addmouselistener( new MouseAdapter() { // アダプタクラスを利用する public void mouseclicked(mouseevent me) { // 座標に対応する pos[][] を 1 増やす repaint(); // 再描画する (paint() を呼ぶ ) ); public void paint(graphics g) { // 枠線を描く // pos[][] に従って描画する pos[][] が 0 のとき,1 のとき,2 のとき \

前回の課題 (3) 配列 pos[][] はその座標と表示する記号 \ を保持するために利用される pos[0][0] 前々回の課題と同様に,pos[][] の剰余が0なら,1なら,2なら \ を表すものとする マウスがクリックされたとき, その座標に対応するpop[][] を増やし, 再描画する 座標は, x = me.getx(); y = me.gety(); で得られるので, その座標から配列 pop[][] の添字になるよう対応をとる 1 [0][0] は0 x 49, 0 y 49, [1][0] は50 x 99, 0 y 49,... 2 x,y を直接演算して添え字にする pos[5][0] pos[5][3]

ウインドウ部品を用いる

ウインドウ部品の追加 Appletクラスを継承したクラスに部品を追加する場合,addメソッドを利用する 代表的な部品として, ラベル Label ボタン Button テキストフィールド TextField チェックボックス Checkbox ラジオボタン CheckboxGroup キャンバス Canvas リスト List チョイス Choice

ラベル ウインドウ内に文字列を部品として配置する際,Labelクラスを用いる Labelクラスの使い方 Label lb1 = new Label("abcd"); // オブジェクトの生成 add(lb1); // add メソッドで部品配置 上記の例では, オブジェクト生成時に文字列を指定していたが, 後から指定するときには,setText メソッドを利用し, オブジェクトの文字列を取得するときには gettext メソッドを利用する Label lb1 = new Label(" "); // 長めの文字列で初期化 lb1.settext(ss); // ss を文字列に指定 add(lb1); // add メソッドで部品配置

ボタン (1) Button クラスを用いる ボタンはそれが押されたことを検知する必要があるので, イベントリスナを利用する クラス Button リスナ登録 addactionlistener() インタフェース ActionListener 呼び出しメソッド actionperformed(actionevent e) Button クラスの使い方 public class JaBtn1 extends Applet implements ActionListener { Button bt1; public void init () { Button bt1 = new Button("button-1"); bt1.addactionlistener(this); add(bt1);... public void actionperformed(actionevent e) { Button bt = (Button) e.getsource(); // どのボタンが押されたかを知る // 仕事を記述

ボタン (2) import java.applet.applet; import java.awt.*; import java.awt.event.*; public class JaBtn1 extends Applet implements ActionListener { Label lb1; Button bt1, bt2; public void init() { bt1 = new Button(" 表示 "); bt1.addactionlistener(this); add(bt1); bt2 = new Button(" 消去 "); bt2.addactionlistener(this); add(bt2); lb1 = new Label(" 初期状態です "); add(lb1); public void actionperformed(actionevent e) { Button bt = (Button)e.getSource(); if (bt == bt1) lb1.settext("abcdefg"); // 押されたボタンが bt1 if (bt == bt2) lb1.settext(""); // 押されたボタンが bt2

テキストフィールド (1) テキストフィールドは 1 行入力用の部品 クラス TextField リスナ登録 addactionlistener() インタフェース ActionListener 呼び出しメソッド actionperformed(actionevent e) テキストフィールドの使い方 public class JaTxtfd1 extends Applet implements ActionListener { TextField txt1; public void init () { TextField txt1 = new TxtField(20); // 20 文字の幅をとっておく txt1.addactionlistener(this); // リスナ登録 add(txt1); // 部品を追加... public void actionperformed(actionevent e) { // 仕事を記述

テキストフィールド (2) // import 文はボタンの例と同じ public class JaTxtFd1 extends Applet implements ActionListener { TextField txt1, txt2; Button btn1; public void init() { txt1 = new TextField(20); // 20 文字分の幅に設定 txt1.addactionlistener(this); // txt1 はイベント処理をする add(txt1); // 登録する txt2 = new TextField(20); // txt2 の設定 add(txt2); btn1 = new Button(" コピー text2 text1"); // ボタンの設定 btn1.addactionlistener(this); // ボタンのイベント処理 add(btn1); // ボタンの登録 public void actionperformed(actionevent e) { String ss; if (e.getsource() == txt1) { // txt1 で Enter 入力あり ss = txt1.gettext(); // txt1 txt2 とコピー txt2.settext(ss); else if (e.getsource() == btn1) { // ボタンクリックあり ss = txt2.gettext(); // txt2 txt1 とコピー txt1.settext(ss);

チェックボックス (1) チェックボックスは項目を有効 無効にする時に使用される クラス Checkbox リスナ登録 additemlistener インタフェース ItemListener 呼び出しメソッド itemstatechanged(itemevent e) チェックボックスの使い方 public class JaChkBx1 extends Applet implements ItemListener { Checkbox cbx1; public void init () { cbx1 = new Checkbox("Red"); cbx1.additemlistener(this); add(cbx1);... public void ItemStateChanged(ItemEvent e) { // 仕事を記述

// import は前と同じ public class JaChkBx1 extends Applet implements ItemListener { Checkbox cbx1, cbx2, cbx3; チェックボックス boolean b1, b2, b3; (2) int nbr = 0; public void init() { cbx1 = new Checkbox("ChkBox1"); cbx1.additemlistener(this); add(cbx1); cbx2 = new Checkbox("ChkBox2"); cbx2.additemlistener(this); add(cbx2); cbx3 = new Checkbox("ChkBox3"); cbx3.additemlistener(this); add(cbx3); public void itemstatechanged(itemevent e) { if (e.getitemselectable() == cbx1) nbr = 1; if (e.getitemselectable() == cbx2) nbr = 2; if (e.getitemselectable() == cbx3) nbr = 3; b1 = cbx1.getstate(); b2 = cbx2.getstate(); b3 = cbx3.getstate(); repaint(); public void paint(graphics g) { if (nbr!= 0) { g.drawstring(" 最新の操作は ChkBox" + nbr, 10, 50); g.drawstring(" 現在の状態は " + b1 + " " + b2 + " " + b3, 10, 80);

チェックボックスグループ (1) チェックボックスは複数の項目を選択できる しかし, 複数のチェックボックスのうち一つだけが選択できる方が便利な場合もある これを実現するのがチェックボックスグループ ( 通常ラジオボタン ) である クラス CheckboxGroup リスナ登録 additemlistener インタフェース ItemListener 呼び出しメソッド itemstatechanged(itemevent e) チェックボックスの形状は であるが, チェックボックスグループでは である

チェックボックスグループ (2) //import は同じ public class JaRadio1 extends Applet implements ItemListener { CheckboxGroup grp1; Checkbox cbx1, cbx2, cbx3; int red = 255, green = 0, blue = 0; public void init() { grp1 = new CheckboxGroup(); cbx1 = new Checkbox(" 赤色 ", true, grp1); cbx1.additemlistener(this); add(cbx1); cbx2 = new Checkbox(" 緑色 ", false, grp1); cbx2.additemlistener(this); add(cbx2); cbx3 = new Checkbox(" 青色 ", false, grp1); cbx3.additemlistener(this); add(cbx3); public void itemstatechanged(itemevent e) { red = green = blue = 0; if (cbx1.getstate() == true) red = 255; if (cbx2.getstate() == true) green = 255; if (cbx3.getstate() == true) blue = 255; repaint(); public void paint(graphics g) { g.setcolor(new Color(red, green, blue)); // 色設定 g.fillrect(30, 40, 180, 50); // 塗り潰し四角形

課題 (1) ( 赤, 緑, 青 ) と ( 円, 四角, 直線 ) の 2 つのチェックボックスグループを作り, チェックボックスグループで指定された図形を表示ボタンを押したときに (100,50) の座標から (100,100) の大きさで各プログラムを作成しなさい

import java.applet.applet; import java.awt.*; import java.awt.event.*; /* <APPLET CODE="JaCbxKadai.class" WIDTH=500 HEIGHT=200> </APPLET> */ public class JaCbxKadai extends Applet implements ItemListener, ActionListener { 課題 CheckboxGroup (2) color, shape; Checkbox c1, c2, c3; Checkbox s1, s2, s3; Button bt1, bt2; int nclr = 1, nshp = 1; boolean disp = false; //trueの時描画するための変数 public void init() { // 色に対するチェックボックスグループを指定する // 形状に対するチェックボックスグループを指定する // ボタンを登録する public void itemstatechanged(itemevent e) { // 色のチェックボックスの状態をnclrに入れる // 形状のチェックボックスの状態をnshpに入れる public void actionperformed(actionevent e) { Button bt = (Button) e.getsource(); if (bt == bt1) disp = true; if (bt == bt2) disp = false; repaint(); public void paint(graphics g) { if (disp) { // nclr の値により現在色を変更する // nshp の値により指定の図形を描画する disp = false; else { g.clearrect(100,50,100,100);