PowerPoint Presentation

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

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

Microsoft PowerPoint - swing3.ppt

ガイダンス

ガイダンス

Java言語 第1回

Java言語 第1回

ガイダンス

Java言語 第1回

Prog2_11th

Prog1_12th

PowerPoint プレゼンテーション

Microsoft PowerPoint - prog11.ppt

Microsoft PowerPoint prog1_doc2x.pptx

<4D F736F F F696E74202D AC C8899E D834F E >

GUIプログラムⅣ

ガイダンス

問1

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

ガイダンス

Java 2 - Lesson01

Microsoft PowerPoint prog1_doc2.pptx

Prog1_12th

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

Microsoft PowerPoint - prog11.ppt

Microsoft PowerPoint - OOP.pptx

< F2D E E6A7464>

Microsoft PowerPoint - swing2.ppt

Java言語 第1回

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

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

PowerPoint Presentation

Microsoft Word - Java3.DOC

ÿþ˜u#u·0¹0Æ0à0

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

Microsoft PowerPoint - prog12.ppt

< F2D B825082CC96E291E82E6A7464>

JAVA入門

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

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

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

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

PowerPoint プレゼンテーション

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

< F2D89BA8EE882C E6A7464>

< F2D B838A835882CC8CF68EAE2E6A7464>

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

Microsoft PowerPoint - prog10.ppt

GUIプログラムⅤ

< F2D82518E9F8AD CC95BD8D7388DA93AE2E6A7464>

public class Kadai _02 { public static void main(string[] args) { MyFrame frame = new MyFrame("Kadai _02"); (2) フレームのクラス名は MyFrame とし 以下


Animals サンプル Step3 張り付けた動物の上をクリックすると それぞれの鳴き声で鳴く その鳴く間 一定時間 ( ここでは 1 秒間 ) 画像が別のものに変わる <アニメーションの基礎 : タイマーについて> アニメーションは アプリケーションが指定する間 一定間隔でどんどん画像をおきかえ

< F2D A838B838D96402E6A7464>

< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

< F2D834F838C A815B A CC>

< F2D82518CC282CC D2E6A7464>

< F2D82B682E182F182AF82F12E6A7464>

第1章 ビジュアルプログラミング入門

Microsoft PowerPoint - prog10.ppt

< F2D A839382CC906A2E6A7464>

I. (i) Java? (A). Foo_Bar (B). G day (C). 999 (D). Golgo13 (ii)? (A). Java public (B). Java (C). Java JavaScript (D). Java C Java C (iii)? (A). Java (

Microsoft PowerPoint - OOP.pptx

< F2D F B834E2E6A7464>

Java 2 - Lesson01

GUIプログラムⅡ

:30 12:00 I. I VII II. III. IV. ( a d) V. VI : this==null, T == N A ActionListener A addactionlistener C class D actionperforme

II Java :30 12:00 I. I IV II. III. IV. ( a d) V. : this==null, T == N A ActionListener C class D actionperformed G getsource I implements K

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

r3.dvi

2008 e-learning T050050

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

text_12.dvi

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

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

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 +=

ウィンドウの構成ウィンドウはタイトルバーとウィンドウ枠からなります タイトルバーには最小化 / 最大化ボタンや閉じるボタンがあります また ウィンドウはクライアント領域をもちます クライアント領域にはボタンなど GUI 部品が配置されます GUI 部品配置 ( レイアウト ) ウィンドウ ( ステー

Microsoft Word 年度情報コミュニケーション実験II(Ver0.9)c.docx

PowerPoint プレゼンテーション

GUI プログラミング第 4 Graph ~ 手書認識と関数グラフ描画 ~ マウスで数式を書いて認識し 関数グラフを描画する < 手書認識とグラフ描画のステップ> ステップ 1_1 フレームの作成 ステップ 1_2 マウスで自由に線を書く ステップ 2-1 手書認識認識結果を標準出力する ステップ

r2.dvi

< F2D8EA CE909482CC92EA82852E6A7464>

< F2D825282CC947B909482CC A815B83682E6A>

Graphical User Interface 描画する

ソフトウェア基礎演習 課題

Prog2_6th

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

ラベルを管理するクラス Label ラベルはクラス Label により管理され 各種設定を行うメソッドが準備されています ラベルの生成 new Label("1. 通常のラベルです "); ラベルのサイズ setprefsize(200,100); ラベル文字が 1. 通常のラベルです で横 200

Microsoft PowerPoint pptx

< F2D92DE82E8914B82CC977088D32E6A7464>

11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS デザインパターンとは? デザインパターン 過去のソフトウェア設計者が生み出したオブジェクト指向設計に関して, ノウハウを蓄積し 名前をつけ 再利用しやすいようにカタログ化したもの 各デ

public class MyFrame { private JPanel panel1; private JPanel panel2; private JPanel panel3; private JPanel panel4; private JLabel label1; private JTex

JavaプログラミングⅠ

JAVA とテンプレート

GEC-Java


プログラミング基礎I(再)

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

スライド 1

Transcription:

上級プログラミング 2( 第 3 回 ) 工学部情報工学科 木村昌臣

今日のテーマ GUI プログラミング入門 AWT

Java で GUI を作る方法 (API) AWT Abstract Window Toolkit GUIをつくるクラス群を提供 ( 基本!) OSによらない外観 Swing 逆にいえば OS ネイティブな look and feel ではない AWT をもとに JavaFX JDK1.8 からの新しいクライアント UI ライブラリ

Java による GUI プログラミング入門 カウンタを作ろう

作りたいプログラムの仕様 GUI のウィンドウの上で操作 テキストボックス ( テキストフィールド ) に数字を表示 ボタンを押すとテキストボックスの数字の値が 1 ずつ増加

説明の流れ ウィンドウの表示 部品 ( ボタン ) の配置 イベント処理 ( ボタンを押したときの処理 )

フレーム ( 枠 ) ウィンドウの表示 まずは こんなのを表示したい カウンタ というタイトルをつける

ウィンドウを表示するだけのプログラム import java.awt.*; // Frame は java.awt パッケージ内 class MyFrame{ public static void main(string[] args){ Frame frame=new Frame(" カウンタ "); frame.setsize(400,300); frame.setvisible(true); // 表示させる

GUI を構成する主要なクラス群 (AWT) Component java.awt パッケージに含まれるクラスを使う Scrollbar など他にもいくつか存在する Container Window Frame Button TextComponent TextField Label CheckBox

Container クラス Container クラス ( もしくはその子孫のクラス ) は 他の GUI コンポーネントを中に配置できる Frame オブジェクト Container クラスの子クラスの子クラスのインスタンス Button オブジェクト

ボタンなどの部品をフレームに配置 import java.awt.*; class MyContainer{ public static void main(string[] args){ Frame frame=new Frame(" カウンタ "); frame.setsize(400,300); frame.setlayout(null); Button button=new Button(" 押せ!"); button.setlocation(200,150); button.setsize(100,40); frame.add(button); frame.setvisible(true);

実行結果 400 ピクセル 300 ピクセル 150 ピクセル 200 ピクセル 40 ピクセル 100 ピクセル frame.setlayout(null) でボタンの自由配置を実現している

今度はテキストフィールドを追加してみよう 追加! 文字を表示したり書き込んだりするテキストフィールド

テキストフィールドの追加 import java.awt.*; class MyContainer2{ public static void main(string[] args){ Frame や Button 部分は略 TextField txt=new TextField("0"); txt.setlocation(100,90); txt.setsize(200,50); frame.add(button); frame.add(txt); frame.setvisible(true);

実行結果 テキストフィールドがついた ただし まだこの段階ではボタンを押しても何も起こらない

やりたいこと 2 ここの数が増える 1 ボタンを押すと

イベント ユーザー側からのアクション ( イベント ) が発生したら特定の処理を行うプログラムをイベント駆動型と呼ぶ イベント 押した! Button オブジェクト 数が 1 つ増加! 1

イベント駆動型プログラムの作り方 登録 イベントリスナー Button オブジェクトなど イベントが発生したら行う処理を定義するクラス イベント発生時に実行

イベントの種類 イベント名説明主なイベントソース Action Mouse Key Window ボタンのクリックなど部品に対する操作時に発生 マウスをクリックしたりドラッグしたりする時に発生 キーボードのキー入力時に発生 ウインドウの状態が変わったときに発生 ボタン メニュー等 Component クラスのサブクラス Component クラスのサブクラス Window クラスのサブクラス

アクションイベントの場合 addactionlistener( リスナーオブジェクト ) Button オブジェクト オブジェクト生成 登録メソッド ActionListener 実装クラス actionperformedメソッドにイベント発生時の処理を記述 イベント発生時に実行

イベントリスナー import java.awt.*; import java.awt.event.*; class OseActionListener implements ActionListener{ TextField txt; OseActionListener(TextField txt){ this.txt=txt; public void actionperformed(actionevent e){ String tmp=this.txt.gettext(); int cnt=integer.parseint(tmp); this.txt.settext(string.valueof(cnt+1));

イベントリスナーの登録 import java.awt.*; class MyCount{ public static void main(string[] args){ Frame Button TextField 定義部分は略 Button button=new Button(" 押せ!"); TextField txt=new TextField("0"); OseActionListener lsnr= new OseActionListener(txt) button.addactionlistener(lsnr); 以降略

描画 簡易ドローソフトを作る

前提知識 ArrayList クラス (java.util パッケージ ) リスト 配列は要素数が固定だが こちらは可変 使い方 ( ジェネリクス Generics を使用している ) ArrayList<String> v= new ArrayList<String>(); v.add(" あ "); v.add(" い "); v.add(" う "); 要素数 for(int i=0; i< v.size(); i++){ System.out.println(v.get(i)); i 番目の要素

簡易ドローソフトの仕様 マウスをクリックした点を直線で結んでいく

線の描き方 描画する処理を書くクラスは Canvas クラスを継承 線を描画する処理を paint メソッド内で実行 paint メソッド内で Graphics オブジェクトを操作することにより描画 public void paint(graphics g){ g.drawline(10,20,110,120);

マウスからのイベントの取得 addmouselistener() 登録 クリック対象のオブジェクト マウスリスナー実装クラス マウスイベントが発生したら行う処理を定義するクラス イベント発生時に実行 クリック対象オブジェクトとマウスリスナー実装クラスは同一でもよい

ソースプログラム import java.awt.*; import java.awt.event.*; import java.util.*; class Painter{ public static void main(string[] args){ Frame frame=new Frame(" お絵かきソフト "); frame.setsize(400,300); DrawTool dt=new DrawTool(); frame.add(dt); frame.setvisible(true); // つづく

class DrawTool extends Canvas implements MouseListener{ ArrayList<Point> points =new ArrayList<Point>(); DrawTool(){ addmouselistener(this); // リスナーを登録 public void paint(graphics g){ g.setcolor(color.black); if(points.size()>1){ for(int i=1; i< points.size(); i++){ Point a = points.get(i-1); Point b = points.get(i); g.drawline(a.x, a.y, b.x, b.y); public void mouseclicked(mouseevent e){ Point p = new Point(e.getX(),e.getY()); points.add(p); repaint(); // 再描画 // つづく

public void mousepressed(mouseevent e){ public void mousereleased(mouseevent e){ public void mouseentered(mouseevent e){ public void mouseexited(mouseevent e){ class Point{ public int x; public int y; Point(int x, int y){ this.x=x; this.y=y;