PowerPoint Presentation

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

ガイダンス

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

Prog2_9th

ガイダンス

Microsoft PowerPoint - prog13.ppt

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

ガイダンス

Microsoft PowerPoint - prog13.ppt

ガイダンス

ガイダンス

Microsoft PowerPoint - swing3.ppt

Java 2 - Lesson01

オブジェクト指向プログラミング・同演習 5月21日演習課題

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

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

Java知識テスト問題

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

1 Java Java GUI , 2 2 jlabel1 jlabel2 jlabel3 jtextfield1 jtextfield2 jtextfield3 jbutton1 jtextfield1 jtextfield2 jtextfield3

Microsoft PowerPoint - prog09.ppt

Java言語 第1回

Microsoft PowerPoint - prog09.ppt

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

PowerPoint Presentation

Prog1_10th

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

< F2D B838A835882CC8CF68EAE2E6A7464>

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

Prog2_11th

Programming-C-9.key

r8.dvi

目 次 Java GUI 3 1 概要 クラス構成 ソースコード例 課題...7 i

< F2D834F838C A815B A CC>

PowerPoint プレゼンテーション

Prog1_15th

Prog1_12th

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

Javaセキュアコーディングセミナー2013東京第1回 演習の解説

PowerPoint プレゼンテーション

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

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

メソッドのまとめ

Java - Visual Editor

Prog1_12th

B 10 : N ip2003f10.tex B : 9/12/ :02 p.1/71

Microsoft PowerPoint ppt

< F2D F B834E2E6A7464>

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

基本情報STEP UP演習Java対策

< F2D8EA CE909482CC92EA82852E6A7464>

/ ( ) 8/7/ :21 p.2/64

JavaプログラミングⅠ


< F2D82518CC282CC D2E6A7464>

2

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

2016 年度 JAVA 講座第六週目 目次 パッケージ... 2 パッケージの作成... 2 パッケージの使用方法... 3 異なるパッケージ同名クラスの宣言... 4 パッケージの側面から見たアクセス修飾子... 4 ラッパークラス... 5 ラッパークラス利用法:キャスト... 5 ラッパーク

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

< F2D82B682E182F182AF82F12E6A7464>

Prog1_13th

デジタル表現論・第6回

Prog2_10th

スライド 1

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

JavaプログラミングⅠ

< F2D92DE82E8914B82CC977088D32E6A7464>

< F2D825282CC947B909482CC A815B83682E6A>

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

2

IT プロジェクト

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

JavaプログラミングⅠ

GUIプログラムⅤ

2 static final int DO NOTHING ON CLOSE static final int HIDE ON CLOSE static final int DISPOSE ON CLOSE static final int EXIT ON CLOSE void setvisible

< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

< F2D E E6A7464>

6 p.1 6 Java GUI GUI paintcomponent GUI mouseclicked, keypressed, actionperformed mouseclicked paintcomponent thread, 1 GUI 6.0.2, mutlithread C

JAVA入門

Javaプログラムの実行手順

プログラミング入門1

自宅でJava言語の開発環境を作る方法

目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測

リファレンス,配列 例外処理

Microsoft PowerPoint - OOP.pptx

プログラミング入門1

** 平成 16 年度 FE 午後問題 Java** 示現塾プロジェクトマネージャ テクニカルエンジニア ( ネットワーク ) など各種セミナーを開催中!! 開催日 受講料 カリキュラム等 詳しくは 今すぐアクセス!! 平成 16

< F2D B825082CC96E291E82E6A7464>

Make the Future Java FY13 PPT Template

Javaの作成の前に

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

< F2D A838B838D96402E6A7464>

JUnit 概要 2015/4/16 版今泉俊幸 2015 bbreak Systems 1

Microsoft Word - CompA-Ex doc

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

Prog2_6th

Java言語 第1回

PowerPoint プレゼンテーション

Transcription:

ソフトウェア演習 B GUI を持つ Java プログラムの 設計と実装

4.1 例題 :GUI を持った電卓を作ろう プロジェクトCalculator パッケージ名 :example ソースファイル : Calculator.java GUI.java EventProcessor.java 2

4.2 GUI とイベント処理 GUI の構成 :Swing GUI の場合 フレーム JFrame: コンポーネントのコンテナ コンテンツペインテキストフィールト JTextField パネルJPanel パネルJPanel ボタンJButton getcontentpane(): フレームからコンテンツペインを取り出す コンテンツペインにレイアウトマネージャを設定する. FlowLayout, BorderLayout, GridLayoutなど コンテンツペインにコンポーネントを配置する. JPanel, JButton, JTextFieldなど JPanelパネルに描画する ( 内部クラス利用 ). paintcomponent(graphics g) 3

インタフェース : 抽象的な共通動作仕様 ( 抽象メソッドとクラス定数 ) の集まり public interface インタフェース名 [extends スーパインタフェース名 [, ]] { public static final 型変数名 = 初期値 ; // 任意個記述可能 public 型メソッド名 ([ 引数並び ]); // 任意個記述可能 ( 例 )java.awt.event.actionlistener public interface ActionListener extends EventListener { public void actionperformed(actionevent e); インタフェースの実装 [public] class クラス名 implements インタフェース名 [, ] { public 型メソッド名 ([ 引数並び ]) { // インタフェースに含まれるメソッドの定義 // インタフェースに含まれるすべての // メソッドを定義しないといけない ( 例 ) public class EventProcessor implements ActionListener { public void actionperformed(actionevent evt) { 4

イベント処理の方法 : 委任イベントモデル イベントソースにイベントリスナーオブジェクトを登録. イベントリスナーオブジェクトは, イベントリスナーインタフェースを実装したクラスのインスタンスで, インタフェースで定められたイベント処理メソッドを実装している. イベントソースは, イベント発生時にそれをイベントリスナーオブジェクトに送信. イベントリスナーはイベントを解析して処理する. add イベント Listener( イベントリスナーオブジェクト ) GUI イベントリスナー登録 イベントリスナー implements イベント Listener イベント解析 イベントソース ( 例 : ボタン ) イベント イベント処理メソッド イベント処理 5

( 例 ) public class GUI extends JFrame { public void initgui(eventprocessor eventprocessor) { for(int i=0; i<5; i++) { for(int j = 0; j < 4; j++) { int p = i * 4 + j; button[p] = new JButton(buttonName[p]); buttonpanel.add(button[p]); button[p].addactionlistener(eventprocessor); public class EventProcessor implements ActionListener public void actionperformed(actionevent evt) { JButton b = (JButton)evt.getSource(); String value = b.gettext(); ボタンのイベントリスナーとして eventprocessor を登録 ActionListener インタフェースを実装して EventProcessor のインスタンスをリスナーオブジェクトとする ActionListener インタフェースの抽象メソッド actionperformed() の実装定義でイベント処理 6

4.3 電卓のイベント処理ロジック 7

4.4 Eclipse で電卓アプリケーションの UML クラス図と Java プログラムを作成 新規 Java プロジェクトの作成 プロジェクト名 :Calculator UML のクラス図を格納するフォルダを作成 フォルダ名 :uml Java プログラムを格納するパッケージを作成 名前 :example クラス図エディターを起動 クラス図フォルダ名 :example.cld ここまでが終了した状態のウインドウ 8

クラス図を作成 9

3 つのクラス Calculator.java, GUI.java, EventProcessor.java を作成 javax.swing.jframe java.awt.event.actionlistener [ 参照 ] をクリックして, Jframe と入力し一致する項目を選択 [ 追加 ] をクリックして, ActionListener と入力し一致する項目を選択 10

ソースコードエディターを用いて Calculator.java のコードを書く 11

ソースコードエディターを用いて GUI.java のコードを書く メソッド GUI コンポーネントの変数宣言 12

GUI コンポーネントの配置 ボタンを押したときに発生するイベントのリスナーを eventprocessor とする 13

ソースコードエディターを用いて EventProcessor.java のコードを書く メソッド 計算実行用の変数宣言 14

ボタンを押したときに発生するイベントを処理するイベントリスナーメソッド 15

( 再 ) public class GUI extends JFrame { public void initgui(eventprocessor eventprocessor) { for(int i=0; i<5; i++) { for(int j = 0; j < 4; j++) { int p = i * 4 + j; button[p] = new JButton(buttonName[p]); buttonpanel.add(button[p]); button[p].addactionlistener(eventprocessor); public class EventProcessor implements ActionListener public void actionperformed(actionevent evt) { JButton b = (JButton)evt.getSource(); String value = b.gettext(); ボタンのイベントリスナーとして eventprocessor を登録 ActionListener インタフェースを実装して EventProcessor のインスタンスをリスナーオブジェクトとする ActionListener インタフェースの抽象メソッド actionperformed() の実装定義でイベント処理 16

コンパイル 実行 コンパイル : プログラムを保存すると自動的にコンパイルされる. 実行 :Calculator.java を右クリックして現れるメニューから [ 実行 ]-[Java アプリケーション ] を選択. 17

4.5 例外処理 例外処理とは : 実行中に起こる例外的な事象 ( 特別な状態, エラー ) への対 処を, 正常な実行の流れとは分けて記述すること. 例外の種類 Throwable Exception Error ClassNotFoundException CloneNotFoundException IllegalAccessException InstantiationException InterruptedException NoSuchFieldException NoSuchMethodException IOException RuntimeException RuntimeException 以外のException 系例外 : 実行環境や実行状態に応じて発生する例外で, 例外の発生を捉えてそれに対処する例外処理コードを書かないといけない. RuntimeException 系例外 : シンタクス的には正しいが実行が正しくできない実行時エラー. デバッグで対処することが多い.( 不正なキャスト,nullオブジェクトアクセス等 ) Error 系例外 :Java 実行系の内部エラーやリソースの不足を示す回復不可能な重大エラー. デバッグで対処. 18

例外処理の方法と構文 メソッドの実行中に起こった例外の発生を呼び出し側に通知 throws: メソッドが例外を発生させる可能性があることを宣言する throw: メソッド内で例外を発生させる 型メソッド名 ([ 引数並び ]) throws 例外名 { throw new 例外名 (); ( 例 ) public static double valueof(string s) throws NumberFormatException { throw new NumberFormatException(); public String readline() throws IOException { throw new IOException(); ( 註 ) コンストラクタからも例外の発生を呼び出し側に通知できる. 19

通知された例外を呼び出し側で捉えて正常な実行の流れから離れて対処 try: 例外を発生させる可能性があるメソッドが例外を発生させたか検査する catch: メソッドが発生させた例外を捉えてそれに対処する finally: 例外発生の有無に関わらず共通に行う事後処理を記述する try { // 例外を発生させる可能性のあるメソッド呼び出し catch( 発生可能な例外名 1 変数 ) { // 例外 1 に対する処理 [ catch( 発生可能な例外名 n 変数 ) { // 例外 n に対する処理 ][finally { // 例外発生の有無に関わらず必ず実行する処理 ] 20

( 例 ) try { currentvalue = (Double.valueOf(ownerGUI.getDisplayFieldText())).doubleValue(); catch(numberformatexception e) { inputbuffer.delete(0, inputbuffer.length()); ownergui.setdisplayfieldtext(inputbuffer.tostring( )); return; try { reader = new BufferedReader(new FileReader(messageFile)); String line; while((line = reader.readline())!= null) array.add(line); catch(ioexception e) { message = new String[1]; message[0] = " メッセージファイルの読み込みに失敗しました."; sizeofmessage = 1; return message; finally { if(reader!= null) try { reader.close(); catch(ioexception e) { メソッドに通知された例外を try-catch 構文で捉えずに, その例外をそのメソッドの呼び出し側に伝播することもできる 型メソッド名 ([ 引数並び ]) throws 例外名 { 例外名の例外を通知する可能性のあるメソッド呼び出し ; 21

4.6 演習問題 1 Java.lang.Math クラスには各種の数学関数メソッドが定義されている. a. 絶対値を求める関数, 三角関数, 平方根を求める関数, べき乗を求める関数を調べよ. b. x,yを実数とするときそれらを引数として受け取り次の計算をする2つのメソッドを書け. また, そのメソッドにx=5, y=4を引数として渡して計算を行い結果を出力するプログラムを書け. (1) 2 2 x + y (2) x ( 1+ sin x + cos x ) 2 Java.lang.Math に定義されている数学関数メソッドのから 4 個 ( 以上 ) を選んで, それらの関数計算ができるように電卓プログラムを関数電卓プログラムに拡張せよ. 22