JAVA GUIプログラミング 第6回 TextFieldとLabel.

Slides:



Advertisements
Similar presentations
第 2 章 数値の入力と変数 scanf と変数をやります 第 2 章 数値の入力と変数 1. 以下のプログラムを実行してみよう  C 言語では文の最後に「 ; 」(セミコロン)が付きます 第 2 章 数値の入力と変数 2 #include int main() { int x; x = 3; printf("x.
Advertisements

Ver 準備 Java フォルダに移動して …… mkdir Swing Swing フォルダに移動して …… cp ~gundam/Java/Swing. コマンドプロンプト ( JDK ) でないと起動 しないので注意!!!
社会人学習講座 「Javaプログラミング概論」
GridLayout オブジェクト(省略)
プログラミング演習3 李 亜民クラス 第2回 ラスタライズ.
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
Imageの描画 画像を読み込んで表示すること。 import java.awt.*;が必要。
Applet 岡部 祐典 鈴木 敬幸.
ファーストイヤー・セミナーⅡ 第8回 データの入力.
GUIコンポーネントの設定と配置 Creation and positioning of GUI components
復習ーII (General Review II)
JAVA GUIプログラミング 第1回 JAVAの実行 絵を描こう.
アプレット (Applet)について.
1.Java 概要 2.簡単なアプレット 3.動画を表示するアプレット 4.アプレットの改良 5.開発環境の利用(データベース)
Iアプリプログラミング その1  鳥居秀徳.
Javaでゲーム  山本拓弥.
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
JAVA.
Excelによる3-D/等高線グラフの描画 2変数関数の描画 Excel によるグレイスケールマップ風描画
Excelによる3-D/等高線グラフの描画 2変数関数の描画 Excel によるグレイスケールマップ風描画
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
 Applet アプレット ◇長い長いアプレット講座◇.
第14回 GUIの構成とイベント・ドリブン ~GUIを使ったプログラム(Ⅰ)~.
繰り返し プログラミング 第4回 繰り返し プログラミング第4回.
JAVA GUIプログラミング 第5回 ボタンとそのイベント処理.
例外処理 Exception Handling
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
アプレット プログラミング 第10回 アプレット プログラミング第10回.
プログラミング演習3 第2回 GUIの復習.
CGと形状モデリング 授業資料 長井 超慧(東京大学)
C 言語について 補足資料 資料および授業の情報は :
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
JAVA GUIプログラミング 第2回 グラフィックスを使っての演習 グラフを描こう.
CGプログラミング論 平成28年5月25日 森田 彦.
Java入門 13.5カラーの使用 13.6テキストの表示                  2003/12/12                   紺野憲一.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
第15回独習Javaゼミ セクション14~15 発表者 直江宗紀.
プログラミング演習3 第3回 ミニプロジェクト.
第二回 VB講座 電卓を作ろう.
第4回 javaのプログラミング 04A2029           古賀慎也.
電界中の電子の運動 シミュレータ作成 精密工学科プログラミング基礎 資料.
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング演習3 第2回 GUIの復習.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
Java/Swingについて (3) 2005年10月19日 海谷 治彦.
JAVA入門後期③ JAVAのGUI (JavaのGUI基本構造、いろいろなアプレット)
JAVA入門後期⑥ JAVAのAWTの基本構造 (レイアウトマネージャー、 ウインドウ型アプリケーション)
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
プログラミング基礎a 第12回 Java言語による図形処理入門(3) アニメーション入門
プログラミング基礎a 第11回 Java言語による図形処理入門(3) アニメーション入門
プログラミングⅠ 平成30年10月22日 森田 彦.
JAVA入門後期④ イベント、AWT、の基本構造、スレッド
C言語 はじめに 2016年 吉田研究室.
オブジェクト プログラミング 第2回 プログラムの基本.
JAVA GUIプログラミング 第3回 イベント処理① マウスイベント.
計算機プログラミングI 第3回 プリミティブ値 クラスメソッド クラス変数 式と演算 変数の利用
Excelによる3-D/等高線グラフの描画 2変数関数の描画 Excel によるグレイスケールマップ風描画
CGプログラミング論 平成28年5月18日 森田 彦.
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
プログラミング実習(Java) グラフィクス処理とGUIプログラミング 講師:坂口 利裕(横浜市立大学)
第7章 そろそろ int 以外も使ってみよう! ~データ型 double , bool~
プログラミング 平成28年10月25日 森田 彦.
プログラミング基礎a 第5回 C言語によるプログラミング入門 配列と文字列
CGと形状モデリング 授業資料 1,2限: 大竹豊(東京大学) 3,4限: 俵 丈展(理化学研究所)
第2章 数値の入力と変数 scanfと変数をやります.
CGプログラミング論 平成28年5月11日 森田 彦.
5.基本API 5-1 レイアウト ウィジェットの並べ方を指定するには、 パレットのレイアウト(Layoutでは以下の8種類)を配置する。
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
プログラミングの原理 データ構造とプログラミング (第4回).
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

JAVA GUIプログラミング 第6回 TextFieldとLabel

今日は・・ 文字や数値を入力し、プログラムに反映   させます そのための入力フォームである   TextFieldの使い方を勉強します。

いつも通り・・大変です import java.applet.*; import java.awt.*; import java.awt.event.*; public class ex11 extends Applet implements ActionListener { double a,b,c; Label la=new Label("aの値"); TextField value_a=new TextField("1.0",3); Label lb=new Label("bの値"); TextField value_b=new TextField("0.0",3); Label lc=new Label("cの値"); TextField value_c=new TextField("0.0",3); Button button1=new Button("描く"); Panel panel=new Panel();

いつも通り・・大変です public void init() { a=1.0;b=0;c=0; button1.addActionListener(this); add(panel); panel.add(la); panel.add(value_a); panel.add(lb); panel.add(value_b); panel.add(lc); panel.add(value_c); panel.add(button1); }

いつも通り・・大変です public void paint(Graphics g) { int i; double x,y,x1,y1,x2,y2; g.setColor(Color.white); g.fillRect(0,0,500,500); g.setColor(Color.black); for (i=0;i<500;i+=10) g.drawLine(i,0,i,500); g.drawLine(0,i,500,i); }

いつも通り・・大変です g.setColor(Color.red); g.drawLine(0,250,500,250); g.setColor(Color.black); for (x=-2;x<=2;x+=0.001) { x1=250+125*x; y=a*x*x+b*x+c; y1=250-125*y; g.drawLine((int)x1,(int)y1,(int)x1,(int)y1); }

いつも通り・・大変です public void actionPerformed(ActionEvent e) { if(e.getSource()==button1) a=Double.valueOf(value_a.getText()).doubleValue(); b=Double.valueOf(value_b.getText()).doubleValue(); c=Double.valueOf(value_c.getText()).doubleValue(); repaint(); }

どうでしょうか 係数a,b,cによって2次関数を描けましたか 入力欄とボタンがキチント機能しましたか

解説 import部 import java.applet.*; import java.awt.*; 解説 import部 import java.applet.*; import java.awt.*; import java.awt.event.*; 今回もこの3つを使います

解説 宣言部 public class ex11 extends Applet implements ActionListener { 解説 宣言部 public class ex11 extends Applet implements ActionListener { double a,b,c; Label la=new Label("aの値"); TextField value_a=new TextField("1.0",3); Label lb=new Label("bの値"); TextField value_b=new TextField("0.0",3); Label lc=new Label("cの値"); TextField value_c=new TextField("0.0",3); Button button1=new Button("描く"); Panel panel=new Panel();

解説 宣言部 public class ex11 extends Applet implements ActionListener { 解説 宣言部 public class ex11 extends Applet implements ActionListener { double a,b,c; Label la=new Label("aの値"); TextField value_a=new TextField("1.0",3); Label lb=new Label("bの値"); TextField value_b=new TextField("0.0",3); Label lc=new Label("cの値"); TextField value_c=new TextField("0.0",3); Button button1=new Button("描く"); Panel panel=new Panel(); 今回も extends Appletとし イベント処理するので ActionListener を使います

解説 宣言部 public class ex11 extends Applet implements ActionListener { 解説 宣言部 public class ex11 extends Applet implements ActionListener { double a,b,c; Label la=new Label("aの値"); TextField value_a=new TextField("1.0",3); Label lb=new Label("bの値"); TextField value_b=new TextField("0.0",3); Label lc=new Label("cの値"); TextField value_c=new TextField("0.0",3); Button button1=new Button("描く"); Panel panel=new Panel(); 係数用の実数変数を用意します

解説 宣言部 public class ex11 extends Applet implements ActionListener { 解説 宣言部 public class ex11 extends Applet implements ActionListener { double a,b,c; Label la=new Label("aの値"); TextField value_a=new TextField("1.0",3); Label lb=new Label("bの値"); TextField value_b=new TextField("0.0",3); Label lc=new Label("cの値"); TextField value_c=new TextField("0.0",3); Button button1=new Button("描く"); Panel panel=new Panel(); Laといラベルを作ります ラベルにはaの値と 書かれています。

解説 宣言部 public class ex11 extends Applet implements ActionListener { 解説 宣言部 public class ex11 extends Applet implements ActionListener { double a,b,c; Label la=new Label("aの値"); TextField value_a=new TextField("1.0",3); Label lb=new Label("bの値"); TextField value_b=new TextField("0.0",3); Label lc=new Label("cの値"); TextField value_c=new TextField("0.0",3); Button button1=new Button("描く"); Panel panel=new Panel(); Aの値を入力する Value_aという TextFieldを作ります ちなみに“1.0”は初めに 入っている値のことで 3というのは3文字分の大きさ を意味しています。

解説 宣言部 public class ex11 extends Applet implements ActionListener { 解説 宣言部 public class ex11 extends Applet implements ActionListener { double a,b,c; Label la=new Label("aの値"); TextField value_a=new TextField("1.0",3); Label lb=new Label("bの値"); TextField value_b=new TextField("0.0",3); Label lc=new Label("cの値"); TextField value_c=new TextField("0.0",3); Button button1=new Button("描く"); Panel panel=new Panel(); 先ほどと おんなじです

解説 宣言部 public class ex11 extends Applet implements ActionListener { 解説 宣言部 public class ex11 extends Applet implements ActionListener { double a,b,c; Label la=new Label("aの値"); TextField value_a=new TextField("1.0",3); Label lb=new Label("bの値"); TextField value_b=new TextField("0.0",3); Label lc=new Label("cの値"); TextField value_c=new TextField("0.0",3); Button button1=new Button("描く"); Panel panel=new Panel(); 「描く」というボタンを作り、 次にパネルを用意します

解説 init部 public void init() { a=1.0;b=0;c=0; 解説 init部 public void init() { a=1.0;b=0;c=0; button1.addActionListener(this); add(panel); panel.add(la); panel.add(value_a); panel.add(lb); panel.add(value_b); panel.add(lc); panel.add(value_c); panel.add(button1); }

解説 init部 初期値として A=1 B=0 C=0 にしておきます public void init() { 解説 init部 public void init() { a=1.0;b=0;c=0; button1.addActionListener(this); add(panel); panel.add(la); panel.add(value_a); panel.add(lb); panel.add(value_b); panel.add(lc); panel.add(value_c); panel.add(button1); } 初期値として A=1 B=0 C=0 にしておきます

解説 init部 ボタン1を処理するイベントに加えて パネルを追加しています public void init() { 解説 init部 public void init() { a=1.0;b=0;c=0; button1.addActionListener(this); add(panel); panel.add(la); panel.add(value_a); panel.add(lb); panel.add(value_b); panel.add(lc); panel.add(value_c); panel.add(button1); } ボタン1を処理するイベントに加えて パネルを追加しています

解説 init部 パネルに La Value_a などを加えていきます public void init() { 解説 init部 public void init() { a=1.0;b=0;c=0; button1.addActionListener(this); add(panel); panel.add(la); panel.add(value_a); panel.add(lb); panel.add(value_b); panel.add(lc); panel.add(value_c); panel.add(button1); } パネルに La Value_a などを加えていきます

解説 paint部 { int i; double x,y,x1,y1,x2,y2; g.setColor(Color.white); 解説 paint部 public void paint(Graphics g) { int i; double x,y,x1,y1,x2,y2; g.setColor(Color.white); g.fillRect(0,0,500,500); g.setColor(Color.black); for (i=0;i<500;i+=10) g.drawLine(i,0,i,500); g.drawLine(0,i,500,i); }

解説 paint部 { int i; double x,y,x1,y1,x2,y2; g.setColor(Color.white); 解説 paint部 public void paint(Graphics g) { int i; double x,y,x1,y1,x2,y2; g.setColor(Color.white); g.fillRect(0,0,500,500); g.setColor(Color.black); for (i=0;i<500;i+=10) g.drawLine(i,0,i,500); g.drawLine(0,i,500,i); } 変数を用意しておきます

解説 paint部 { int i; double x,y,x1,y1,x2,y2; g.setColor(Color.white); 解説 paint部 public void paint(Graphics g) { int i; double x,y,x1,y1,x2,y2; g.setColor(Color.white); g.fillRect(0,0,500,500); g.setColor(Color.black); for (i=0;i<500;i+=10) g.drawLine(i,0,i,500); g.drawLine(0,i,500,i); } 画面を真っ白にする

解説 paint部 { int i; double x,y,x1,y1,x2,y2; g.setColor(Color.white); 解説 paint部 public void paint(Graphics g) { int i; double x,y,x1,y1,x2,y2; g.setColor(Color.white); g.fillRect(0,0,500,500); g.setColor(Color.black); for (i=0;i<500;i+=10) g.drawLine(i,0,i,500); g.drawLine(0,i,500,i); } 色を黒に設定して このfor文では、マスを描いてます (駄洒落ではありません)

解説 paint部 g.setColor(Color.red); g.drawLine(0,250,500,250); 解説 paint部 g.setColor(Color.red); g.drawLine(0,250,500,250); g.drawLine(250,0,250,500); g.setColor(Color.black); for (x=-2;x<=2;x+=0.001) { x1=250+125*x; y=a*x*x+b*x+c; y1=250-125*y; g.drawLine((int)x1,(int)y1,(int)x1,(int)y1); }

解説 paint部 色を赤にして、 軸を赤で描いてます g.setColor(Color.red); 解説 paint部 g.setColor(Color.red); g.drawLine(0,250,500,250); g.drawLine(250,0,250,500); g.setColor(Color.black); for (x=-2;x<=2;x+=0.001) { x1=250+125*x; y=a*x*x+b*x+c; y1=250-125*y; g.drawLine((int)x1,(int)y1,(int)x1,(int)y1); } 色を赤にして、 軸を赤で描いてます

解説 paint部 色を黒にして グラフを描きます g.setColor(Color.red); 解説 paint部 g.setColor(Color.red); g.drawLine(0,250,500,250); g.drawLine(250,0,250,500); g.setColor(Color.black); for (x=-2;x<=2;x+=0.001) { x1=250+125*x; y=a*x*x+b*x+c; y1=250-125*y; g.drawLine((int)x1,(int)y1,(int)x1,(int)y1); } 色を黒にして グラフを描きます

解説 イベント処理部 public void actionPerformed(ActionEvent e) { 解説 イベント処理部 public void actionPerformed(ActionEvent e) { if(e.getSource()==button1) a=Double.valueOf(value_a.getText()).doubleValue(); b=Double.valueOf(value_b.getText()).doubleValue(); c=Double.valueOf(value_c.getText()).doubleValue(); repaint(); }

解説 イベント処理部 public void actionPerformed(ActionEvent e) { 解説 イベント処理部 public void actionPerformed(ActionEvent e) { if(e.getSource()==button1) a=Double.valueOf(value_a.getText()).doubleValue(); b=Double.valueOf(value_b.getText()).doubleValue(); c=Double.valueOf(value_c.getText()).doubleValue(); repaint(); } 発生したイベントが ボタン1であったら という意味ですね

解説 イベント処理部 public void actionPerformed(ActionEvent e) { 解説 イベント処理部 public void actionPerformed(ActionEvent e) { if(e.getSource()==button1) a=Double.valueOf(value_a.getText()).doubleValue(); b=Double.valueOf(value_b.getText()).doubleValue(); c=Double.valueOf(value_c.getText()).doubleValue(); repaint(); } 難しいところですね 要は、value_aに入っている値を Aに代入する部分です 何故ややこしいかというと、 入力フォームはstring(文字型)なので Double型に変換しなければならないのです

解説 イベント処理部 public void actionPerformed(ActionEvent e) { 解説 イベント処理部 public void actionPerformed(ActionEvent e) { if(e.getSource()==button1) a=Double.valueOf(value_a.getText()).doubleValue(); b=Double.valueOf(value_b.getText()).doubleValue(); c=Double.valueOf(value_c.getText()).doubleValue(); repaint(); } この部分でa,b,cに 新しい値が入りました

解説 イベント処理部 public void actionPerformed(ActionEvent e) { 解説 イベント処理部 public void actionPerformed(ActionEvent e) { if(e.getSource()==button1) a=Double.valueOf(value_a.getText()).doubleValue(); b=Double.valueOf(value_b.getText()).doubleValue(); c=Double.valueOf(value_c.getText()).doubleValue(); repaint(); } そこで、再画面を描きます

今日はここでおしまいです 2次関数以外でもいろいろ描けるので 試してみてください。 描きたい範囲も入力できるようにもできる   試してみてください。 描きたい範囲も入力できるようにもできる   ようにしてみると便利なので改造して   みてください