テキストボックスの値が変数に代入できない(1)
お早うございます。
java初心者です、宜しくお願いします。
下記のような、アプレットのテキストボックスから値をとり
計算結果を表示するプログラムを書いてやりましたが、
値(実数値)がうまく変数に代入されていません。
この原因が分かりません、どこが悪いのか皆様方のご教示宜しくお願いいたします。
文法上のエラーは出ていません、AWTとswingとの混在は理解は出来ていじますが、それとは別の箇所で原因があると思いますが、解決できません、宜しくお願いいたします。
字数制限で二回の投稿となりますが、宜しくお願いいたします。
==================================================
public class WPCulc extends Applet implements ActionListener
{
Double Wu , Wd , Wul , Wdl = 0.0 ;
Double q , Cwu , Cwd = 0.0 ;
Double sita = 0.0 ;
Double lon = 0.0 ;
Double E , Vo = 0.0 ;
Double Er2 , Gf = 0.0 ;
Double Zb , Zg , arfa = 0.0 ;
public void init()
{
setLayout(null) ;
//一番上の文字
Label lb = new Label("Culc WP");
lb.setFont(new Font("SansSerif",Font.BOLD,20));
lb.setBackground(new Color(0xff9999));
Color c = Color.blue; //カラーを指定
lb.setForeground(c); //ラベルの前景色
lb.setBounds(25 , 40 , 250 ,50) ;
add(lb);
//longth(延長)
Label lb_longth = new Label("L");
lb_longth.setFont(new Font("SansSerif",Font.BOLD,20));
lb_longth.setBackground(new Color(0xff9999));
lb_longth.setBounds(40 ,120 , 30 ,30) ;
add(lb_longth) ;
//θ
Label lb_sita = new Label("θ");
lb_sita.setFont(new Font("SansSerif",Font.BOLD,20));
lb_sita.setBackground(new Color(0xff9999));
lb_sita.setBounds(40 ,160 , 30 ,30) ;
add(lb_sita);
//Zb
Label lb_Zb = new Label("Zb");
lb_Zb.setFont(new Font("SansSerif",Font.BOLD,20));
lb_Zb.setBackground(new Color(0xff9999));
lb_Zb.setBounds(40 , 200 , 30 ,30) ;
add(lb_Zb);
//Zg
Label lb_Zg = new Label("Zg");
lb_Zg.setFont(new Font("SansSerif",Font.BOLD,20));
lb_Zg.setBackground(new Color(0xff9999));
lb_Zg.setBounds(40 , 240 , 30 ,30) ;
add(lb_Zg);
//arufa
Label lb_arfa = new Label("α");
lb_arfa.setFont(new Font("SansSerif",Font.BOLD,20));
lb_arfa.setBackground(new Color(0xff9999));
lb_arfa.setBounds(40 , 280 , 30 ,30) ;
add(lb_arfa);
lb.setBounds(25 , 40 , 250 ,50) ;
//Gf
Label lb_Gf = new Label("Gf");
lb_Gf.setFont(new Font("SansSerif",Font.BOLD,20));
lb_Gf.setBackground(new Color(0xff9999));
add(lb_Gf);
lb_Gf.setBounds(40 , 320 , 30 ,30) ;
//Vo
Label lb_Vo = new Label("Vo");
lb_Vo.setFont(new Font("SansSerif",Font.BOLD,20));
lb_Vo.setBackground(new Color(0xff9999));
add(lb_Vo);
lb_Vo.setBounds(40 , 360 , 30 ,30) ;
//Button(InputDataの確認)
Button bt = new Button("InputDataの確認");
bt.addActionListener(this);
bt.setFont(new Font("SansSerif",Font.BOLD,20));
Color d = new Color(0xff00ff); //カラーを指定
bt.setBackground(d); //ボタンの背景色
bt.setForeground(new Color(0.0f, 0.0f, 0.0f)); //floatで指定
bt.setBounds(60,430,220,40);
add(bt);
//TextFieldの始まり(Fieldの作成のみとDataの取得)
//InputDataの表示(addせず)
TextField tf = new TextField("InputData");
Color e = new Color(255,255,255); //カラーを指定
tf.setBackground(e);
Color f = new Color(0,255,0);
tf.setForeground(f);
tf.setBounds(55,130,180,20);
// add(tf);
JTextField jta00 = new JTextField("");//long
JTextField jta0 = new JTextField("");//sita
JTextField jta1 = new JTextField("");//Zb
JTextField jta2 = new JTextField("");//Zg
JTextField jta3 = new JTextField("");//α
JTextField jta4 = new JTextField("");//Gf
JTextField jta5 = new JTextField("");//Vo
try
{
lon = Double.parseDouble(jta00.getText()) ;
sita = Double.parseDouble(jta0.getText()) ;
Zb = Double.parseDouble(jta1.getText()) ;
Zg = Double.parseDouble(jta2.getText()) ;
arfa = Double.parseDouble(jta3.getText()) ;
Gf = Double.parseDouble(jta4.getText()) ;
Vo = Double.parseDouble(jta5.getText()) ;
}
お礼
LookAndFeelをシステムのLookAndFeelに設定しています。 LokkAndFeelを設定しないか、画面のプロパティでクラシック表示にすると、ボタンカラーは変更されますね。 /*これがいやなら、ちょっと面倒ですがJButtonを継承したクラスを作成し、そこでコンポーネントの表示を制御させれるような処理を考えれば良いと思います。またLookAndFeelの実装を自作するという手もありますが、かなり面倒です。*/ 確かにできそうですが、面倒なのでボタンカラーを変更しないほかの処理を考えます。 とても参考になりました。回答ありがとうございました。