2014-05-18 5 views
0

Ceci est une simple calculatrice; mon code compile mais ne fonctionne pas. Je ne veux pas dire Exécuter ou Exécuter:Le code se compile mais ne fonctionne pas

import java.awt.*; 
    import javax.swing.*; 
    import java.awt.event.*; 
    public class Calc implements ActionListener{ 

JFrame frame; 
JButton plus,mul; 
JTextField op1,op2,ans; 
JLabel firstOperand, secondOperand,answer; 
// setting layout 

public void initGUI(){ 

frame = new JFrame();////set top level container 
Container con = frame.getContentPane();   
con.setLayout(new FlowLayout()); 

firstOperand = new JLabel("First Operand");g their constructor 
secondOperand = new JLabel("Second Operand"); 
answer = new JLabel("Answer"); 

plus = new JButton("+"); 
plus.setPreferredSize(new Dimension(70,25)); 
mul = new JButton("*"); 
mul.setPreferredSize(new Dimension(70,25)); 

con.add(firstOperand); 
con.add(op1);r 

con.add(secondOperand); 
con.add(op2); 

con.add(plus); 
con.add(mul); 

con.add(answer); 
con.add(ans); 


plus.addActionListener(this); 
mul.addActionListener(this); 

// set size of frame and make it visible 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setSize(200,220); 
frame.setVisible(true); 

}//end of initilization GUI 

//constructor 
public Calc(){ 

initGUI();// jab obj create ho ga to call ho ga 


} 
// actionperformed() method of ActionListener 

    public void actionPerformed(ActionEvent event){ 

     String oper, result; 
    int num1,num2,res; 
    //System.out.println(event.getSource); 
    if(event.getSource() == plus){ 
    oper = op1.getText(); 
    oper = op2.getText(); 
    num2 = Integer.parseInt(oper); 
    res = num1 + num2;//add operands 
    result = res+""; 
    ans.setText(result); 
    } 
    else if (event.getSource() == mul){ 
    oper = op1.getText(); 
    num1 = Integer.parseInt(oper); 
    oper = op2.getText(); 
    num2 = Integer.parseInt(oper); 
    res = num1 * num2;//add operands 
    result = res+""; 
    ans.setText(result); 

    } 


}// end of actionPerformed method 

public static void main(String args[]){ 

Calc cl = new Calc();// making object for Cals class 

} 
} 
+0

Quelle est l'erreur-t-il donner? – Leigh

+1

Cela nécessite plus de diagnostics. Que signifie "ne pas exécuter"? Est-ce que ça marche? (Sinon, il n'a probablement pas été compilé, même si vous pensez que c'est le cas.) Est-ce que ça marche mais rien ne se passe? Ensuite, ajoutez une sortie de débogage pour voir si elle fonctionne - ajoutez une instruction d'impression dès le début. – usr2564301

+1

Toujours regarder les bûches en premier. Its provoquant 'java.lang.NullPointerException' – Braj

Répondre

1

Vos champs JTextField ne sont pas initialisés. initialisez avec

op1 = new JTextField(); 
.... 
0

Vous obtenez NullPointerException parce que le JTextFields ne sont pas initialisés. Donc, lorsque vous essayez de les ajouter à la ControlPanel, son lancer NullPointerException. initialisez correctement

0

Ajouter ce votre constructeur:

op1 = new JTextField(); 
    op2 = new JTextField(); 
    ans = new JTextField(); 
Questions connexes