プログラミング演習3 第2回 GUIの復習.

Slides:



Advertisements
Similar presentations
オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
Advertisements

Ver 準備 Java フォルダに移動して …… mkdir Swing Swing フォルダに移動して …… cp ~gundam/Java/Swing. コマンドプロンプト ( JDK ) でないと起動 しないので注意!!!
ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
社会人学習講座 「Javaプログラミング概論」
GridLayout オブジェクト(省略)
         第9回 Swing.
創造工学設計I 電子情報工学科4年(前期) 8回目 (04/6/2015) 担当 古山彰一 ac
JSFによるWebアプリケーション開発 第9回
Applet 岡部 祐典 鈴木 敬幸.
Win32APIとMFC H107102 古田雅基 H107048 佐藤一樹 H107126 山下洋平.
GUIコンポーネントの設定と配置 Creation and positioning of GUI components
Iアプリプログラミング その1  鳥居秀徳.
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
プログラミング演習3 第4回 ミニプロジェクト.
Netscape Communicator Eudora Microsoft Word
Javaレクチャー ーSwing入門ー.
第14回 GUIの構成とイベント・ドリブン ~GUIを使ったプログラム(Ⅰ)~.
JAVA GUIプログラミング 第5回 ボタンとそのイベント処理.
CGプログラミング論 平成28年4月27日 森田 彦.
システムエンジニアリング演習 GUIの実現(3):Swing 11月20日.
社会人学習講座 「Javaプログラミング概論」
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
第11回 GUI(グラフィカル・ユーザ・インターフェース)の設計
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
プログラミング演習3 第2回 GUIの復習.
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
ソフトウェア工学 知能情報学部 新田直也.
JAVA入門後期⑨ JAVAのSwingのメニュー処理
プログラミング演習3 第3回 ミニプロジェクト.
アルゴリズムとデータ構造演習(6月24日) グラフィックス、その2 テキストフィールドで入力する チェックボックスで1つ以上指定する
ライブラリを利用したGUI の実現(2):Swing 11月12日
Java/Swingについて (2) 2005年10月11日 海谷 治彦.
JAVA入門後期⑦ JAVAのSwingの基本構造
第15回独習Javaゼミ セクション14~15 発表者 直江宗紀.
プログラミング演習3 第3回 ミニプロジェクト.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
EclipseでWekaのAPIを呼び出す
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
Java/Swingについて (3) 2005年10月19日 海谷 治彦.
10-1 SAXの概要 10-2 Saxプログラミングの基礎 10-3 saxのプログラム例
演習1 : インターフェイスを使ってみよう 「10人の客(乗用車、バイク、ストーブのいずれかランダムに決定)に1~100(L)の給油をするガソリンスタンドをシミュレートする実行クラス : RefuelSimulation」を作成する。給油の際には、どの種類の客が何リットル給油したか出力すること。 実行結果例.
Java/Swingについて+ (4) 2005年10月26日 海谷 治彦.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
プログラミング基礎a 第12回 Java言語による図形処理入門(3) アニメーション入門
プログラミング基礎a 第11回 Java言語による図形処理入門(3) アニメーション入門
Javaによる Webアプリケーション入門 第11回
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
JAVA入門後期④ イベント、AWT、の基本構造、スレッド
システムエンジニアリング演習 GUIの実現(1):AWT 11月6日.
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第九回 知能情報学部 新田直也.
手書き文字の自動認識アプリケーション 15K1013 坂本 倖輝
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
JAVA GUIプログラミング 第3回 イベント処理① マウスイベント.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
Javaによる Webアプリケーション入門 第4回
画面への描画 Graphics オブジェクト 紙 ペン Pen オブジェクト Brush オブジェクト 画面のピクセルをカプセル化
Jakarta Struts (1) ソフトウェア特論 第10回.
ソフトウェア工学 知能情報学部 新田直也.
プログラミング実習(Java) グラフィクス処理とGUIプログラミング 講師:坂口 利裕(横浜市立大学)
Javaを用いたシューティングゲーム作成
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
5.基本API 5-1 レイアウト ウィジェットの並べ方を指定するには、 パレットのレイアウト(Layoutでは以下の8種類)を配置する。
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
Presentation transcript:

プログラミング演習3 第2回 GUIの復習

そもそもGUIとはなにか? GUI(Graphic User Interface)とは、マウスなどのデバイスとCGを用いて、人が直感的に機械を操作できる環境のこと ↑プログラミング入門で扱った   プログラムのGUI

JavaによるGUIアプリケーション JavaでGUIアプリケーションを作成するにはSwingというGUIコンポーネントを使うのが主流です Swingでは、フレームというウィンドウを生成しそこにボタンやラベルなどのコンポーネントを追加することでGUIを作っていきます メニュー ラベル パネル ボタン スクロールバー (図形の描画)

GUIコンポーネントの階層 javax.swingパッケージ中のSwingコンポーネントは以下の3階層に分類される トップレベルコンテナ(JFrame等)   メインウィンドウとなる土台の役割 Swingではこれらの階層のコンポーネントを組み合わせて作成する JMenuBar JPanel 中間コンテナ(JPanel等)   コンポーネント配置のためのコンテナの役割 コントロール(JLabel、JButton等)     ボタンやラベルなどのGUIコンポーネント JScrollPane

コンポーネントの配置が終わってからsetVisible(true)で表示 フレームの作成 早速プログラミングをはじめましょう フレームを作るには、import javax.swingをインポートして、JFrameを継承しなければなりません コンポーネントの配置が終わってからsetVisible(true)で表示

ラベルの表示 FlowLayout()は左上から順に配置するレイアウト l0, l1, l2の順で追加 画像はJavaファイルと 同じ場所に置く FlowLayout()は左上から順に配置するレイアウト l0, l1, l2の順で追加

レイアウト 追加したコンポーネントを配置するためにFlowLayoutなどのレイアウトマネージャが用意されている GridLayout(n,m):格子状に配置 BorderLayout:東西南北に配置 縦に3つ、横に1つ配置 North,South,East,West,Centerの どれかを指定する

パネル パネルをうまく使うと複雑なレイアウトを設定できます p1 p2 フレームのレイアウト 各パネルにもレイアウトの設定を行う フレームに各パネルの追加

フレームにコンポーネントを配置するだけでは、機能を持たない イベント処理 フレームにコンポーネントを配置するだけでは、機能を持たない ↓ コンポーネントが何のイベントを受け取るのか指定することにより、GUIに機能を持たせることができる イベントを受け取った際の処理をリスナーと呼ばれるクラスに記述することにより、イベントを処理する Button object(s) ActionEvent ActionListener ActionEvent クリック!

イベント処理の例 イベントを発生した時に行う処理を書く イベントを受け取りたいコンポーネントにリスナー(ボタンの場合はActionListener)を指定 この場合b1以外はリスナーが指定されていないので押しても何も起こらない イベントを発生した時に行う処理を書く

ダイアログ ユーザに対して緊急性のあるメッセージを表示する際にダイアログが使われます クリック! trueにするとダイアログを閉じない限りプログラムを終了できない

図形の描画 図形の描画はJPanelクラスを継承し、paintComponentメソッドをオーバーライドする 始めにsuper.paintComponentメソッドを呼び、その後ろに描画処理を書く このコンポーネントをJFrame内に描画領域としてレイアウトする class ClassA extends JPanel{ /*略*/ @Override public void paintComponent(Graphics g) { //これは必須 super.paintComponent(g); /* 描画の処理 */ } class ClassB extends JFrame{ ClassA gp; public ClassB() { //レイアウトの設定 gp = new ClassA(); add(gp); /*略*/ }

図形の描画のサンプル JFrame側のコード JPanel側のコード

図形の再描画 再描画する場合はrepaintメソッドを呼び出す ボタンを押すと○の位置が変わるプログラム

クリックの検知 クリックされたかどうかを検出するにはMouseListenerを使う。このアプリでは、フレーム上でクリックするとコンソールに文字が表示される

決定を押すとパスと入力した番号を比較しダイアログを表示 演習 ボタンを使ってユーザに4桁の番号を入力させ、パスワード(1111)とマッチしたかどうかを表示するダイアログを表示するアプリを作ってみましょう 数字ボタンをクリックすると上部に押した番号が表示される 入力例 正しい場合 異なる場合 クリアを押すと押した番号は消去される 決定を押すとパスと入力した番号を比較しダイアログを表示

課題2 クリックしたところの座標を取得しコンソールに表示してみましょう 座標情報を持つクラス java.awt.Point      ヒント:getPointメソッドで座標を取得出来ます Point p = e.getPoint(); int x = p.x; int y = p.y; 座標情報を持つクラス java.awt.Point

課題2 1回目で作ったSmallCircleのdrawメソッドを呼び出し、”SmallCircleを<クリックした座標>に描画”とコンソール出力してみましょう クリックしたところに1回目で作成したSmallCircleを描画してみましょう ※パッケージ名は特に指定しない ヒント:図形のdrawメソッドも書き換える必要があります