2016-12-09 5 views
1

das ist mein code es soll funktionieren wie folgt: wenn ich auf den button "taux de change" klicke, sollte ein anderer Frame erscheinen und der aktuelle Frame sollte verschwinden, aber der Button funktioniert nicht und eine Fehlermeldung wird angezeigt wenn ich darauf klicke, plzzz hilf mir zu verraten, was das Falsche ist ????mein jbutton funktioniert nicht wie erforderlich?

that's my code: 
package ResourceTP3; 

import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.*; 

public class ConversionDevise extends JFrame implements ActionListener { 

    double tt=120.0; 
    Pane4 mr; 

    JPanel pane1=new JPanel(), pane2=new JPanel(),pane3=new  JPanel(),pane4=new JPanel(),p=new JPanel(); 

    public JButton b1=new JButton("euro->dinar"),b2=new JButton("dinar- >euro"),b3=new JButton("taux de change"); 
    public JLabel lab1=new JLabel("dinar :"),lab2=new JLabel("euro :"); 
    public JTextField tx1=new JTextField(13),tx2=new JTextField(13); 

    public ConversionDevise(){ 
     setTitle("Conversion Devise"); 

     b1.addActionListener(this); 
     b2.addActionListener(this); 
     b3.addActionListener(this); 

     pane1.doLayout(); 
     pane1.add(lab2); 
     pane1.add(tx1); 

     pane2.doLayout(); 
     pane2.add(b1); 
     pane2.add(b2); 

     pane3.doLayout(); 
     pane3.add(lab1); 
     pane3.add(tx2); 

     p.doLayout(); 
     p.add(b3); 

     pane4.setLayout(new GridLayout(4,1)); 
     pane4.add(pane1); 
     pane4.add(pane2); 
     pane4.add(pane3); 
     pane4.add(p); 

      setDefaultCloseOperation(EXIT_ON_CLOSE); 
      getContentPane().add(pane4); 
      setLocationRelativeTo(null); 
      pack(); 
      setVisible(true); 
    } 

    public void actionPerformed(ActionEvent b) { 
     JButton a=(JButton)b.getSource(); 

     if(a.equals(b1)){ 
      int x; 
      double y; 
      x=Integer.parseInt(tx1.getText()); 
      y=(double) (x/tt); 
      String msg="votre montant est = "+y; 
      JOptionPane.showConfirmDialog(null, msg,"montant aprés changement ",JOptionPane.PLAIN_MESSAGE); 
     } 
     else{ 
      int x; 
      double y; 
      x=Integer.parseInt(tx2.getText()); 
      y=(double) (x*tt); 
      String msg="votre montant est = "+y; 
      JOptionPane.showConfirmDialog(null, msg,"montant aprés changement ",JOptionPane.PLAIN_MESSAGE); 
     } 


     if(a.equals(b3)){ 
      this.removeAll(); 

      mr=new Pane4(); 
      setDefaultCloseOperation(EXIT_ON_CLOSE); 
      getContentPane().add(mr); 
       setLocationRelativeTo(null); 
      pack(); 
      setVisible(true); 

      } 

     if(a.equals(b)){ 
      tt=Integer.parseInt(mr.t.getText()); 
      } 

     } 


    public static void main(String[] args) { 
     new ConversionDevise(); 
    } 
} 

that's the error that comes when i click on the button

+0

Sie versuchen, eine leere '' String'' in eine Zahl umzuwandeln. Die Zeichenfolge ist leer, weil das Bearbeitungsfeld leer ist. – f1sh

+0

aber ich denke, es ist ein Wert, während es läuft ... das Problem, das ich habe, ist mit dem Button namens "b3" – marou

Antwort

0

Versuch JButton a = (JButton) b.getSource() zu ändern; zu String a = b.getActionCommand(); und in der if-Bedingung anstelle von if (a.equals (b3)) schreibe if (a.equals ("taux de change")). es wird klappen.

+0

natürlich ändern, wenn sonst Teil auch – Amani

+0

danke Amani ich werde es versuchen;) – marou

+0

funktioniert es jetzt? – Amani