GUIプログラムⅡ

Similar documents
GUIプログラムⅤ

GUIプログラムⅣ

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言語 第1回

< F2D E E6A7464>

Java言語 第1回

VB実用Ⅲ⑩ フリーデータベースⅡ

Java言語 第1回

データアダプタ概要

ガイダンス

r4.dvi

ガイダンス

< F2D B825082CC96E291E82E6A7464>

Java言語 第1回

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

ガイダンス

Object MenuComponent MenuBar MenuItem Menu CheckboxMenuItem

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

Prog2_11th

PowerPoint Presentation

< F2D834F838C A815B A CC>

Prog1_12th

tkk0408nari

Microsoft PowerPoint - prog13.ppt

< F2D B838A835882CC8CF68EAE2E6A7464>

Java 2 - Lesson01

Javaプログラムの実行手順

Microsoft PowerPoint - prog13.ppt

Microsoft PowerPoint - prog12.ppt

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

Microsoft PowerPoint - prog11.ppt

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

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

データベースアクセス

Microsoft PowerPoint - prog11.ppt

Prog1_12th

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

PowerPoint Presentation


mySQLの利用

Microsoft PowerPoint - OOP.pptx

<4D F736F F F696E74202D AC C8899E D834F E >

ファイル操作

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

< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

ガイダンス

JavaプログラミングⅠ

< F2D A838B838D96402E6A7464>

< F2D82518E9F8AD CC95BD8D7388DA93AE2E6A7464>

r5.dvi

< F2D92DE82E8914B82CC977088D32E6A7464>

< F2D89BA8EE882C E6A7464>

ガイダンス

< F2D A839382CC906A2E6A7464>

< F2D82B682E182F182AF82F12E6A7464>

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

PowerPoint Presentation

r2.dvi

第14回若年者ものづくり競技大会「業務用ITソフトウェア・ソリューションズ」職種 模擬競技課題

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

Microsoft PowerPoint - OOP.pptx

< F2D8EA CE909482CC92EA82852E6A7464>

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

JavaプログラミングⅠ


Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

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

Java 2 - Lesson01

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

< F2D F B834E2E6A7464>

< F2D82518CC282CC D2E6A7464>

2

< F2D825282CC947B909482CC A815B83682E6A>

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

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

Thread

Microsoft PowerPoint pptx

Microsoft PowerPoint - OOP.pptx

Microsoft PowerPoint - prog09.ppt

12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある インターネットアドレス

問1

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

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

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

Microsoft PowerPoint - prog09.ppt

Java講座

データベース1

GEC-Java

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

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

ALG2012-F.ppt

JavaプログラミングⅠ

プログラミング入門1

Microsoft Word - Java3.DOC

55 7 Java C Java TCP/IP TCP/IP TCP TCP_RO.java import java.net.*; import java.io.*; public class TCP_RO { public static void main(string[] a

64bit環境で32bitコンポーネントの利用

FormPat インポート設定ガイド

Microsoft Word - Java3.DOC

I java A

ファイル操作-バイナリファイル

Transcription:

GUI プログラム Ⅱ 前回課題の制作例 ファイル名 :awtsave.java import java.awt.*; import java.awt.event.*; public class awtsave extends Frame // Button クラスの宣言 Button btnsave; Label lblcaption1, lblcaption2, lblcaption3; Label lblcaption4, lblcaption5, lblcaption6; TextField txtname, txtzip; TextArea txtaddress; CheckboxGroup cg; Checkbox chksex1, chksex2; Checkbox chkhobby1, chkhobby2, chkhobby3, chkhobby4, chkhobby5; Choice cboorigin; // コンストラクタ public awtsave(string title, int width, int height, int top, int left, boolean resize) // ウィンドウの設定 settitle(title); setsize(width, height); if(top>0 && left>0) setlocation(top, left); else Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); setlocation((d.width-width)/2,(d.height-height)/2); setresizable(resize); // レイアウトマネージャの無効化 setlayout(null); // チェックボックスのグループ cg = new CheckboxGroup(); -1-

// コンポーネントの生成 lblcaption1 = new Label(" 氏名 "); add(lblcaption1); lblcaption1.setbounds(20, 30,60,20); txtname = new TextField(); add(txtname); txtname.setbounds(90, 30,200,20); lblcaption2 = new Label(" 郵便番号 "); add(lblcaption2); lblcaption2.setbounds(20, 60,60,20); txtzip = new TextField(); add(txtzip); txtzip.setbounds(90, 60,80,20); lblcaption3 = new Label(" 住所 "); add(lblcaption3); lblcaption3.setbounds(20, 90,60,20); txtaddress = new TextArea(); add(txtaddress); txtaddress.setbounds(90, 90,200,60); lblcaption4 = new Label(" 性別 "); add(lblcaption4); lblcaption4.setbounds(20,160,60,20); chksex1 = new Checkbox(" 男性 ",cg,true); add(chksex1); chksex1.setbounds(90,160,70,20); chksex2 = new Checkbox(" 女性 ",cg,false); add(chksex2); chksex2.setbounds(160,160,70,20); lblcaption5 = new Label(" 趣味 "); add(lblcaption5); lblcaption5.setbounds(20,190,60,20); chkhobby1 = new Checkbox(" 磯釣り "); add(chkhobby1); chkhobby1.setbounds(90,190,70,20); chkhobby2 = new Checkbox(" 海釣り "); add(chkhobby2); chkhobby2.setbounds(160,190,70,20); chkhobby3 = new Checkbox(" 船釣り "); add(chkhobby3); chkhobby3.setbounds(230,190,70,20); chkhobby4 = new Checkbox(" 沖釣り "); add(chkhobby4); chkhobby4.setbounds(90,220,70,20); chkhobby5 = new Checkbox(" 渓流釣り "); add(chkhobby5); chkhobby5.setbounds(160,220,70,20); lblcaption6 = new Label(" 本籍地 "); add(lblcaption6); lblcaption6.setbounds(20,250,60,20); cboorigin = new Choice();add(cboOrigin); cboorigin.setbounds(90,250,100,20); cboorigin.additem(" 北海道 "); cboorigin.additem(" 青森 "); cboorigin.additem(" 秋田 "); cboorigin.additem(" 岩手 "); cboorigin.additem(" 福島 "); // Button クラスの生成 btnsave = new Button(" 保存 "); add(btnsave); btnsave.setbounds(20,280,130,30); // 匿名内部クラス ( ウィンドウリスナ用 ) WindowAdapter wad = new WindowAdapter() public void windowclosing(windowevent e) System.exit(0); ; addwindowlistener(wad); // 匿名内部クラス ( アクションリスナ用 ) ActionListener cal = new ActionListener() public void actionperformed(actionevent e) System.exit(0); ; btnsave.addactionlistener(cal); -2-

ファイル名 :awttest.java public class awttest public static void main(string arg[]) //=============================================== // ウィンドウ (Frame クラス ) のインスタンスを生成 //=============================================== awtsave win = new awtsave(" 簡易データベース ", 310, 320, -1, -1, false); //================== // ウィンドウの表示 //================== win.setvisible(true); 課題 1. 下記の各項目をカンマ区切のファイル ( ファイル名 :easydb.csv) と仕て保存する 氏名入力用の TextField の記入データ ( インスタンス名 txtname) 郵便番号入力用の TextField の記入データ ( インスタンス名 txtzip) 住所入力用の TextArea の記入データ ( インスタンス名 txtaddress) 性別選択用の CheckBox の選択項目のキャプション ( インスタンス名 chksex) 趣味選択用の CheckBox の選択状況 ( インスタンス名 chkhobby) 本籍地選択用の Choice の選択項目名 ( インスタンス名 cboorigin) 猶 趣味の項目は 選択されて居れば を 選択されて居なければ を保存する 従って 1 レコードのフィールド数は 10 と成る ( 趣味の選択項目が 5 の場合 ) 例 : 宇野,601-8441, 京都市南区, 男性,,,,,, 京都 上記のレコードを 保存ボタンがクリックされる毎に 保存する 2. 上記の各項目をアクセスファイル ( ファイル名 :easydb.mdb) と仕て保存する アクセスファイルは テーブル名を easydb とし 上記項目に合わせたフィールドを作成して 同じフォルダに 予め 保存して置く フィールド名の例は 下記の通り NAME,ZIP,ADDRESS,SEX,HOBBY1,HOBBY2, HOBBY3, HOBBY4, HOBBY5,ORIGIN 上記の easydb.mdb を参照する easydb と謂う名前の DSN を登録する 登録は コントロールパネル ODBC データソース で行う データを保存する手順は java.sql の総てのコンポーネントのインポート ドライバクラスのロード データベースに接続 ステートメントオブジェクトの生成 SQL の発行で有る -3-

CSV ファイルに保存 ファイル名 :awtsave.java 匿名内部クラス ( アクションリスナ用 ) の部分而巳 import java.io.*; // 追加 // 匿名内部クラス ( アクションリスナ用 ) ActionListener cal = new ActionListener() public void actionperformed(actionevent e) // データ格納用配列の宣言 String d[] = new String[10]; String all = ""; // コンポーネントからデータ取得 d[0] = txtname.gettext(); d[1] = txtzip.gettext(); d[2] = txtaddress.gettext(); if(chksex1.getstate() == true)d[3] = chksex1.getlabel(); elsed[3] = chksex2.getlabel(); if(chkhobby1.getstate() == true)d[4] = " "; else d[4] = " "; if(chkhobby2.getstate() == true)d[5] = " "; else d[5] = " "; if(chkhobby3.getstate() == true)d[6] = " "; else d[6] = " "; if(chkhobby4.getstate() == true)d[7] = " "; else d[7] = " "; if(chkhobby5.getstate() == true)d[8] = " "; else d[8] = " "; d[9] = cboorigin.getselecteditem(); for(int i=0; i<9; i++)all += (d[i] + ","); all += (d[9] + " n"); for(int i=0; i<10; i++)system.out.println("d[" + i + "]:" + d[i]); System.out.println("ALL :" + all); ; // データの保存 (CSV 形式 ) try FileWriter fw = new FileWriter("easydb.csv", true); fw.write(all); fw.close(); catch(exception ex) 課題 1. 上記のコードでは データは 常に 1 レコードしか保存され無い 此れを 保存する毎に データが追加される様に変更する 即ち 上書モードでは無く 追加モードで保存する様にする java.io.filewriter クラスのコンストラクタを利用 -4-

アクセスファイルに保存 ファイル名 :awtsave.java データの保存 ( アクセス形式 ) の部分而巳 import java.sql.*; // 追加 (java.io.* は不要 ) // データの保存 ( アクセス形式 ) try // ドライバクラスをロード Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // データベースへ接続 Connection cn = DriverManager.getConnection("jdbc:odbc:easydb"); // ステートメントオブジェクトを生成 Statement st = cn.createstatement(); // 全てのフィールドを挿入する SQL 文を作成 String sql = "INSERT INTO easydb VALUES("; for(int i=0; i<9; i++)sql += ("'"+d[i]+"',"); sql += ("'"+d[9]+"')"); // クエリーを実行 st.executequery(sql); // データベースから切断 st.close( ); cn.close( ); catch(exception ex) 参考 MS ACCESS の場合 1 ドライバクラスをロード Class.forName( "sun.jdbc.odbc.jdbcodbcdriver" ); 2 接続文字列の設定 String cs = "jdbc:odbc:easydb"; 3 データベースへ接続 Connection cn = DriverManager.getConnection(cs); 4 ステートメントを生成 Statement st = cn.createstatement( ); 5 SQL 文を作成 String sql = "INSERT INTO easydb VALUES( "+d[0]+", )"; 6 クエリーを実行 st.executequery( sql ); 7 データベースから切断 st.close( ); cn.close( ); mysql の場合 1 ドライバクラスをロード Class.forName( "org.gjt.mm.mysql.driver" ); 2 接続文字列の設定 String cs = "jdbc:mysql:///easydb?useunicode=true&characterencoding=sjis"; postgresql の場合 1 ドライバクラスをロード Class.forName( "org.postgresql.driver" ); 2 接続文字列の設定 String cs = "jdbc:postgresql:easydb"; 3 データベースへ接続 Connection cn = DriverManager.getConnection(cs, "postgres", ""); -5-