Download presentation
Presentation is loading. Please wait.
1
JAVA GUIプログラミング 第6回 TextFieldとLabel
2
今日は・・ 文字や数値を入力し、プログラムに反映 させます そのための入力フォームである TextFieldの使い方を勉強します。
3
いつも通り・・大変です 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();
4
いつも通り・・大変です 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); }
5
いつも通り・・大変です 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); }
6
いつも通り・・大変です g.setColor(Color.red); g.drawLine(0,250,500,250);
g.setColor(Color.black); for (x=-2;x<=2;x+=0.001) { x1= *x; y=a*x*x+b*x+c; y1= *y; g.drawLine((int)x1,(int)y1,(int)x1,(int)y1); }
7
いつも通り・・大変です 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(); }
8
どうでしょうか 係数a,b,cによって2次関数を描けましたか 入力欄とボタンがキチント機能しましたか
9
解説 import部 import java.applet.*; import java.awt.*;
解説 import部 import java.applet.*; import java.awt.*; import java.awt.event.*; 今回もこの3つを使います
10
解説 宣言部 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();
11
解説 宣言部 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 を使います
12
解説 宣言部 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(); 係数用の実数変数を用意します
13
解説 宣言部 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の値と 書かれています。
14
解説 宣言部 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文字分の大きさ を意味しています。
15
解説 宣言部 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(); 先ほどと おんなじです
16
解説 宣言部 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(); 「描く」というボタンを作り、 次にパネルを用意します
17
解説 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); }
18
解説 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 にしておきます
19
解説 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を処理するイベントに加えて パネルを追加しています
20
解説 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 などを加えていきます
21
解説 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); }
22
解説 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); } 変数を用意しておきます
23
解説 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); } 画面を真っ白にする
24
解説 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文では、マスを描いてます (駄洒落ではありません)
25
解説 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= *x; y=a*x*x+b*x+c; y1= *y; g.drawLine((int)x1,(int)y1,(int)x1,(int)y1); }
26
解説 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= *x; y=a*x*x+b*x+c; y1= *y; g.drawLine((int)x1,(int)y1,(int)x1,(int)y1); } 色を赤にして、 軸を赤で描いてます
27
解説 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= *x; y=a*x*x+b*x+c; y1= *y; g.drawLine((int)x1,(int)y1,(int)x1,(int)y1); } 色を黒にして グラフを描きます
28
解説 イベント処理部 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(); }
29
解説 イベント処理部 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であったら という意味ですね
30
解説 イベント処理部 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型に変換しなければならないのです
31
解説 イベント処理部 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に 新しい値が入りました
32
解説 イベント処理部 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(); } そこで、再画面を描きます
33
今日はここでおしまいです 2次関数以外でもいろいろ描けるので 試してみてください。 描きたい範囲も入力できるようにもできる
試してみてください。 描きたい範囲も入力できるようにもできる ようにしてみると便利なので改造して みてください
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.