2016-12-10 6 views
1

私は基本的な二次方程式の計算機のJFrameプログラムを作成しています。 3つのテキストフィールドを3つのDouble値に変換するアクションリスナーを作成しました。この値はa、b、cに等しく、二次式で使用されます。ユーザーが終了したときにボタンの他​​のActionListenerにこれらを入れる方法を理解できません。ボタンの目的は、ユーザが一度終了して二次方程式の計算を実行し、新しいJFrameに回答を表示することです。ここで私のコードは、誰もこれを行うに行く方法のための提案がありますか?1つのActionListenerメソッドから別のActionListenerメソッドにDouble値を取り込んで計算を実行するにはどうすればよいですか? Java

編集:私は私に言って計算を実行しようとすると、エラーを取得しています「のシンボルを見つけることができない」

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import java.math.*; 


public class GUISource extends JFrame { 

private JTextField textA; 
private JTextField textB; 
private JTextField textC; 
private JLabel labA; 
private JLabel labB; 
private JLabel labC; 
private JButton butA; 
private JButton butB; 
private JButton butC; 

public GUISource(){ 


    super ("Quadratic Equatic"); 
    setLayout (new FlowLayout()); 

    labA = new JLabel("Enter your A value:"); 

    add(labA); 

    textA = new JTextField(30); 

    add(textA); 

    butA = new JButton("Enter"); 

    //add(butA); 

    labB = new JLabel("Enter your B value:"); 

    add(labB); 

    textB = new JTextField(30); 

    add(textB); 

    //butB = new JButton("Enter"); 

    //add(butB); 

    labC = new JLabel("Enter your C value:"); 

    add(labC); 

    textC = new JTextField(30); 

    add(textC); 

    //butC = new JButton("Enter"); 

    //add(butC); 

    add(butA); 



    listenPlease handle = new listenPlease(); 
    //labA.addActionListener(handle); 
    //labB.addActionListener(handle); 
    //labC.addActionListener(handle); 
    //butA.addActionListener(handle); 
    //butB.addActionListener(handle); 
    //butC.addActionListener(handle); 
    textA.addActionListener(handle); 
    textB.addActionListener(handle); 
    textC.addActionListener(handle); 

    buttonListen handler = new buttonListen(); 

    butA.addActionListener(handler); 



} 


private class listenPlease implements ActionListener{ 

    public void actionPerformed (ActionEvent e){ 

     String transfer = ""; 

     if (e.getSource() == textA){ 
      transfer = String.format("field 1 : %s", e.getActionCommand()); 
      double a = Integer.parseInt(transfer); 

     } 
     else if(e.getSource() == textB){ 
      transfer = String.format("field 2: %s", e.getActionCommand()); 
      double b = Integer.parseInt(transfer); 

     } 
     else if(e.getSource() == textC){ 
      transfer = String.format("frield 3: %s", e.getActionCommand()); 
      double c = Integer.parseInt(transfer); 

     } 

    } 


} 

private class buttonListen implements ActionListener{ 

    //private double a; 
    //private double b; 
    //private double c; 


    public void actionPerformed (ActionEvent ButtonPress){ 


     JFrame Answer = new JFrame("Answer"); 

     Answer.setSize(200, 200); 

     double d = (Math.pow(b, 2)+(4 * a * c)); 



    } 


} 


} 

答えて

2

あなたは静的変数に3つのdouble Sを置くことができます。

public class GUISource extends JFrame { 
//same as before 
    private JTextField textA; 
    private JTextField textB; 
    private JTextField textC; 
    private JLabel labA; 
    private JLabel labB; 
    private JLabel labC; 
    private JButton butA; 
    private JButton butB; 
    private JButton butC; 

    public static double a =0,b=0,c=0; 
あなたのactionListenerで

、その後は:

if (e.getSource() == textA){ 
    transfer = String.format("field 1 : %s", e.getActionCommand()); 
    double a = Integer.parseInt(transfer); 
    GUISource.a = a; 
} 
//similarly for b and c 
+0

は、迅速な応答をありがとう!これはそれを修正しました!とても有難い! – bordia

+1

@ボルディアあなたが答えを受け入れて、それが役に立つと分かったらアップアップしてください – ItamarG3

+1

答えを受け入れるための10分の遅れが私に許されるとき私はします! – bordia

関連する問題