Domanda Swing e java grafica

Stato
Discussione chiusa ad ulteriori risposte.

LoScroccone

Utente Silver
17 Aprile 2011
62
20
2
81
Salve ragazzi ho questo esercizio

Codice:
package pag258;//12- Scrivere l'applicazione per la conversione di una misura da pollici a centimetri 
//e per la conversione inversa, offrendo all'utente la scelta tra le due possibilità.
import java.awt.*;
import java.awt.event.*;


import javax.swing.*;
public class n12 extends JFrame implements ActionListener {
	private JPanel p =new JPanel();
	private JLabel l1=new JLabel("Pollici",JLabel.RIGHT);
	private JLabel l2=new JLabel("Centimetri",JLabel.RIGHT);
	private JTextField t1=new JTextField(10);
	private JTextField t2=new JTextField(10);
	private JButton pollici=new JButton("Converti in pollici");
	private JButton centi=new JButton("Converti in cm");
	
	public n12(){
		p.setLayout(new GridLayout(3,2));
		p.add(l1);
		p.add(t1);
		p.add(l2);
		p.add(t2);
		p.add(pollici);
		p.add(centi);
		
		pollici.addActionListener(this);
		pollici.setActionCommand("pol");
		centi.addActionListener(this);
		centi.setActionCommand("cen");
		
		this.getContentPane().add(p);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}


 [MENTION=93960]override[/MENTION]
	public void actionPerformed(ActionEvent event) {
		double pol=0.0,cent=0.0;
		if("cen".equals(event.getActionCommand())){
			String p=pollici.getText();
			pol=Double.parseDouble(p);
			cent=(pol*2.54);
			t2.setText(Double.toString(cent));
		}
		else if("pol".equals(event.getActionCommand())){
			String p2=centi.getText();
			cent=Double.parseDouble(p2);
			pol=cent*0.39;
			t1.setText(Double.toString(pol));
		}
		
	}
	public static void main(String[] arg){
		n12 ese=new n12();
		ese.setLocation(500,300);
		ese.setTitle("n12 swing");
		ese.setVisible(true);
		ese.pack();
	}


}

Che mi dice errore se clicco sul buttono converti in pollici o viceversa. cosa puo essere?
 
Gentile LoScroccone,

stai cercando di ottenere del testo dal JButton e non dal JTextField.
In poche parole, la "sorgente" da dove prendere le informazioni di "getText()"

Sostituisci:
Codice:
if("cen".equals(event.getActionCommand())){
       String p=pollici.getText();
       pol=Double.parseDouble(p);
       cent=(pol*2.54);
       t2.setText(Double.toString(cent));
}
else if("pol".equals(event.getActionCommand())){
       String p2=centi.getText();
       cent=Double.parseDouble(p2);
       pol=cent*0.39;
       t1.setText(Double.toString(pol));
}

con questo:
Codice:
if ("cen".equals(event.getActionCommand())) {
            String p = t1.getText();
            pol = Double.parseDouble(p);
            cent = (pol * 2.54);
            t2.setText(Double.toString(cent));
}
else if ("pol".equals(event.getActionCommand())) {
            String p2 = t2.getText();
            cent = Double.parseDouble(p2);
            pol = cent * 0.39;
             t1.setText(Double.toString(pol));
}


Cordiali saluti,
Misterioso
 
Stato
Discussione chiusa ad ulteriori risposte.