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

Similar documents
ガイダンス

ガイダンス

ガイダンス

Java言語 第1回

Prog1_12th

< F2D E E6A7464>

Java言語 第1回

< F2D82518E9F8AD CC95BD8D7388DA93AE2E6A7464>

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

< F2D834F838C A815B A CC>

< F2D B838A835882CC8CF68EAE2E6A7464>

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

<4D F736F F F696E74202D AC C8899E D834F E >

Prog1_12th

< F2D A838B838D96402E6A7464>

< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

< F2D B825082CC96E291E82E6A7464>

PowerPoint Presentation

Java言語 第1回

PowerPoint Presentation

Prog2_11th

< F2D89BA8EE882C E6A7464>

< F2D F B834E2E6A7464>

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

text_12.dvi

< F2D8EA CE909482CC92EA82852E6A7464>

Microsoft PowerPoint - OOP.pptx

< F2D A839382CC906A2E6A7464>

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

GUIプログラムⅣ

Object MenuComponent MenuBar MenuItem Menu CheckboxMenuItem

問1

ガイダンス

ガイダンス

プログラミング入門1

GUIプログラムⅤ

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

Prog2_9th

< F2D92DE82E8914B82CC977088D32E6A7464>

< F2D825282CC947B909482CC A815B83682E6A>

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

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

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

JavaプログラミングⅠ

Microsoft PowerPoint - OOP.pptx

Java 2 - Lesson01

< F2D82B682E182F182AF82F12E6A7464>

Java言語 第1回

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

PowerPoint プレゼンテーション

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

Prog2_12th

問題1 以下に示すプログラムは、次の処理をするプログラムである

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

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

Prog1_6th

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

PowerPoint プレゼンテーション

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

< F2D82518CC282CC D2E6A7464>

Javaの作成の前に

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

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

GUIプログラムⅡ

PowerPoint プレゼンテーション

C#の基本

メディプロ1 Javaプログラミング補足資料.ppt

基本情報STEP UP演習Java対策

Microsoft PowerPoint ppt

PowerPoint プレゼンテーション

データ構造とアルゴリズム論

IT プロジェクト

......() JButton

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

JavaプログラミングⅠ

Javaプログラムの実行手順

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

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

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

Microsoft PowerPoint - swing2.ppt

PowerPoint プレゼンテーション

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

PowerPoint プレゼンテーション

C#の基本2 ~プログラムの制御構造~

text_13.dvi

JavaプログラミングⅠ

問 1 図 1 の図形を作るプログラムを作成せよ 但し ウィンドウの大きさは と し 座標の関係は図 2 に示すものとする 図 1 作成する図形 原点 (0,0) (280,0) (80,0) (180,0) (260,0) (380,0) (0,160) 図 2 座標関係 問 2

PowerPoint プレゼンテーション

JavaプログラミングⅠ

piyo0702a.rtfd

Processing入門マニュアル17

Microsoft PowerPoint ppt

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

Prog2_6th

PowerPoint プレゼンテーション

Microsoft PowerPoint pptx


r4.dvi

JAVA入門

Microsoft PowerPoint ppt

Transcription:

10/28 Java AWT の基本構造 (Frame クラスの継承 ) 演習課題資料以下のプログラムを完成せよ 共通課題 1.Frame を生成するプログラム // Frame クラスを継承して 終了ボタンのみを定義した クラスの定義 class WhiteWindow 1 { // Frame クラスの継承をする (Frame クラスの拡張 ) WhiteWindow (String title){ //Frame クラス ( 親クラス ) のコンストラクタを呼び出し Window タイトルを設定 2 (title); タイトル //Frame のサイズを設定 ( 起動時 Window の大きさの設定 ) 3 (200,200); // 終了ボタンのクリック時の動作を設定する addwindowlistener( new WindowAdapter(){ // アプリケーションの終了 ); 200 終了ボタン 200 //WhiteWindow アプリケーションのインスタンスを使用するメインクラス public class Kadai2009110401 { // タイトル付きの白い Window をメモリ上に作成する WhiteWindow ww = new WhiteWindow ("Java の窓 "); // メモリ上の Window を画面に見えるようにする ww.setvisible(true);

10/28 Java AWT の基本構造 (Frame クラスの継承 ) 演習課題資料 2.Frame に FlowLayout を適用して Label を貼るプログラム // Frame クラスを継承して // Window 内に Label を加えて 終了ボタンを定義 したクラスの定義 class LabelWindow 1 { // Frame クラスの継承をする (Frame クラスの拡張 ) //Label のインスタンスを宣言する private Label namelabel, birthlabel, numberlabel; // コンストラクタの定義 LabelWindow (String title){ //Frame クラス ( 親クラス ) のコンストラクタを呼び出し Window タイトルを設定 2 (title); //Frame のサイズを設定 ( 起動時 Window の大きさの設定 ) 3 (200,200); // 終了ボタンのクリック時の動作を設定する addwindowlistener( new WindowAdapter(){ // アプリケーションの終了 ); // Layout を FlowLayout に設定する 4 ; //Label を初期化する namelabel = 5 (" 名前 :****"); birthlabel = 5 (" 生年月日 :****"); numberlabel = 5 (" 学生番号 :*****"); // Label を Window 上に加える 6 (namelabel); 6 (birthlabel); 6 (numberlabel); Label //LabelWindow アプリケーションのインスタンスを使用するメインクラス public class Kadai2009110402 { // タイトルと Label 付きの Window をメモリ上に作成する LabelWindow rw = new LabelWindow ("Label とレイアウト "); // メモリ上の Window を画面に見えるようにする rw.setvisible(true);

10/28 Java AWT の基本構造 (Frame クラスの継承 ) 演習課題資料 追加課題 3.Button に動作を設定するプログラム class ButtonWindow 1 { // Frame クラスを拡張し ActionListener を実装する private Button btnoha, btntiwa, btnbanwa; // おはよう こんにちは こんばんわボタン private Button btnend, btninit; // 終了と初期化ボタン private Label messagelabel; // メッセージラベル ButtonWindow (String title){ // コンストラクタで UI を設定する 2 (title); // Frame クラスのコンストラクタ 3 (400,200); // Frame のサイズを設定 addwindowlistener(new WindowAdapter(){ ); // 全体を BorderLayout に設定 (Fram クラスのデフォルトは BorderLayout) 4 (new BorderLayout()); // 下地にパネルを 3 つ準備する Panel paue = 5 ; //north に配置予定 Panel panaka = 5 ; //center に配置予定 Panel pasita = 5 ; //south に配置予定 // FlowLayout にしてボタンを 3 つ配置 paue. 6 (new FlowLayout()); //3 つボタンを定義して paue に追加 btnoha = 7 (" おはよう "); btntiwa = 7 (" こんにちは "); btnbanwa = 7 (" こんばんわ "); NORTH パネル paue.add(btnoha); paue.add(btntiwa); paue.add(btnbanwa); CENTER パネル //Label を定義して panaka に追加 panaka. 6 (new FlowLayout()); SOUTH パネル messagelabel = 8 (" あいさつ "); panaka.add(messagelabel); // 初期化 と 終了 用のボタン定義して pasita に追加 pasita. 6 (new FlowLayout()); btninit = 7 (" 初期化 "); btnend = 7 ("End"); pasita.add(btninit); pasita.add(btnend); // 3 つのパネルをこの Window に追加 this.add(paue, BorderLayout.NORTH); this.add(panaka, BorderLayout.CENTER); this.add(pasita, BorderLayout.SOUTH); // ボタンにリスナーを設定 ( この Window 上の動作を登録 ) btnoha.addactionlistener(this); btntiwa.addactionlistener(this); btnbanwa.addactionlistener(this); btninit.addactionlistener(this); btnend.addactionlistener(this); パネルは 透明なシートのようなオブジェクト

10/28 Java AWT の基本構造 (Frame クラスの継承 ) 演習課題資料 // ボタンの動作定義 public void actionperformed(actionevent ae){ if(ae.getsource()==btnoha) messagelabel.settext(" おはよう "); if(ae.getsource()==btntiwa) messagelabel.settext(" こんにちは "); if(ae.getsource()==btnbanwa) messagelabel.settext(" こんばんは "); if(ae.getsource()==btninit) messagelabel.settext(" あいさつ "); if(ae.getsource()==btnend) public class Kadai2009110403 { ButtonWindow bw = new ButtonWindow (" あいさつボタン "); bw.setvisible(true);

10/28 Java AWT の基本構造 (Frame クラスの継承 ) 演習課題資料 4. ダイヤモンド図形を表示するプログラム以下のプログラムを完成させよ // パネルだけを定義するクラス 描画は このパネルに行う class ZukeiPanel extends Panel { private int w,h,cx,cy, r; // 幅 w 高さh 中心 cx cy 描画半径 r private int num; private int x[],y[]; public void paint(graphics g) { // getsize() 現在の Window の大きさ取得 Dimension d = getsize(); (0,0) w = d.width; // 領域の幅 h = d.height; // 領域の高さ y cx = 1 ; // 中心座標 x= 幅 2 cy = 2 ; // 中心座標 y= 高さ 2 // dr は もし cx>cy なら cy の値 *0.8 それ以外 cx*0.8 double dr =( cx>cy? cy : cx ) * 0.8; r = (int)dr; num = 10; // 頂点数は 10 x = new int[num]; y = new int[num]; double angle = 2.0 * Math.PI / num; for(int i = 0; i<num; i++){ 3 //10 個の頂点座標 (x[i],y[i]) を求める 4 // すべての頂点同士を線で結ぶ 中心 (cx,cy) cx=d.width/2 cy=d.heght/2 //Window だけを定義したクラス // 内部に 1 つだけ Panel を加える class Zukei extends Frame { private ZukeiPanel mainpanel; Zukei(String title){ super(title); setsize(500,500); addwindowlistener(new WindowAdapter(){ ); setlayout(new BorderLayout()); // 中パネル作成図形描画 mainpanel = new ZukeiPanel(); add(mainpanel, BorderLayout.CENTER); d.width(window 幅 ) 3 に記述する処理 (i=0) 初期角度 ang = i x[i]=cx+dr*cos(ang), y[i]=cy-dr*sin(ang) (i=1) ang =i*angle x[i]= cx+dr*cos(ang), y[i]=cy-dr*sin(ang) (i=2) ang = i* angle x[i]= cx+dr*cos(ang), y[i]=cy-dr*sin(ang) 以下同様に繰り返して座標計算 4 に記述する処理(2 重ループを利用する ) (i=0) (j=i+1) (x[i],y[i]) と (x[j],y[j]) で直線を引く (i=1) (j=i+1) (x[i],y[i]) と (x[j],y[j]) で直線を引く (i=2) (j=i+1) (x[i],y[i]) と (x[j],y[j]) で直線を引く 以下同様に繰り返す 2 点 (x0,y0) と (x1,y1) を結ぶ直線を引く命令 g.drawline(x0,y0,x1,y1); x d.height(window 高さ ) // アプリケーションのメインクラス //Window を作るクラスのインスタンスを生成する public class Kadai2009110404 { Zukei zukei = new Zukei(" ダイヤモンド図形表示 "); zukei.setvisible(true);