Ciao, ho a disposizione due classi distinte (ciascuna in nel proprio file .java):
e questa classe che gestisce il JButtoncodice:import java.awt.*; import javax.swing.*; import java.awt.event.*; public class AppletTemperatura extends JApplet { private JPanel pannello; private JLabel etichetta; private JTextField campo; private JComboBox combo; private JButton pulsante; private static JLabel risultato; public void init() { pannello = new JPanel(); etichetta = new JLabel("Inserisci la temperatura qui accanto: "); campo = new JTextField(10); campo.setHorizontalAlignment(JTextField.RIGHT); combo = new JComboBox(); combo.setEditable(false); combo.addItem("Celsius in Kelvin"); combo.addItem("Celsius in Fahrenheit"); combo.addItem("Kelvin in Celsius"); combo.addItem("Kelvin in Fahrenheit"); combo.addItem("Fahrenheit in Celsius"); combo.addItem("Fahrenheit in Kelvin"); pulsante = new JButton("Converti"); risultato = new JLabel("Risultato: "); pannello.add(etichetta); pannello.add(campo); pannello.add(combo); pannello.add(pulsante); pannello.add(risultato); this.setContentPane(pannello); pulsante.addMouseListener(new Ascoltatore(campo, combo, risultato)); } public static void aggiornaRisultato(JLabel risultatoPassato) { risultato = risultatoPassato; risultato.validate(); } }
Il problema che una volta inserita la temperatura e cliccato sul pulsante, non si aggiorna la JLabel "Risultato". Navigando in rete ho trovato l'istruzione "validate()" ma sembra non fare niente. Come potrei fare? Grazie mille!!!!codice:import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Ascoltatore extends MouseAdapter { private JTextField campo; private JComboBox combo; private JLabel risultatoEtichetta; private double dato, risultato; public Ascoltatore(JTextField campoPassato, JComboBox comboPassato, JLabel risultatoPassato) { campo = campoPassato; combo = comboPassato; risultatoEtichetta = risultatoPassato; } public void mouseClicked(MouseEvent oggettoEvento) { try { if((combo.getSelectedItem().toString()).equalsIgnoreCase("Celsius in Kelvin")==true) { dato = Double.parseDouble(campo.getSelectedText()); risultato = ConversioneTemperatura.celsiusInKelvin(dato); risultatoEtichetta.setText("Risultato: " + risultato); AppletTemperatura.aggiornaRisultato(risultatoEtichetta); } } catch(Throwable e) {} } }![]()

Rispondi quotando

