Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "JAVA GUIプログラミング 第6回 TextFieldとLabel."— Presentation transcript:

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次関数以外でもいろいろ描けるので 試してみてください。 描きたい範囲も入力できるようにもできる
  試してみてください。 描きたい範囲も入力できるようにもできる   ようにしてみると便利なので改造して   みてください


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

Similar presentations


Ads by Google