2016-12-10 2 views
1

저는 기본 2 차 방정식 계산기의 JFrame 프로그램을 만들고 있습니다. 세 개의 텍스트 필드를 이차 수식 내에서 사용되는 a, b 및 c와 같은 세 개의 Double 값으로 변환하는 Action 수신기를 만들었습니다. 사용자가 끝나면 단추에 대한 다른 ActionListener에이를 넣는 방법을 알아낼 수 없습니다. 버튼의 목적은 사용자가 완료하고 새 JFrame에 응답을 표시하면 이차 방정식의 계산을 수행하는 것입니다. 여기에 내 코드가있다, 누구든지이 일을하는 방법에 대한 제안을 가지고 있습니까?한 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

당신은 정적 변수에 세 double의를 넣을 수 있습니다 :

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

@ 보르 디아 그러면 대답을 받아 들여야하고 유용하다고 생각되면 upvote해야합니다. – ItamarG3

+1

답변을 수락하기위한 10 분 지연이 허용됩니다! – bordia

관련 문제