Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    17

    Riconoscere se ho inserito qualcosa in un JTextField

    Ciao a tutti devo svolgere il seguente esercizio in Java:

    Completare la definizione in modo che ogni volta che si preme enter nel JTextField centimetri, la
    corrispondente misura in pollici venga messa nel JTextField pollici e viceversa (1 pollice = 2.54
    cm). Si ricorda che premendo enter nel JTextField si produce un ActionEvent.


    Ho fatto il seguente codice

    codice:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.lang.*;
    import java.io.*;
    import java.util.*;
    
    class Convertitore extends JFrame {
    
    	TextField centimetri = new TextField(10);
    	TextField pollici = new TextField(10);
    
    	JButton enter = new JButton("Enter");
    
    	public Convertitore() {
    		JPanel panel = new JPanel();
    		panel.add(centimetri);
    		panel.add(pollici);
    
    		panel.add(enter);
    
    		ActionListener conv = (new ActionListener() {
    				public void actionPerformed(ActionEvent event) {
    					if(centimetri != null && pollici == null) {
    						double val = Double.parseDouble(centimetri.getText());
    						pollici.setText("Pollici = " + Cen_Poll(val));
    					}
    					if(centimetri == null && pollici != null) {
    						double val = Double.parseDouble(pollici.getText());
    						pollici.setText("Centimetri = " + Poll_Cen(val));
    					}
    
    					else {
    						pollici.setText("ERRORE");
    						centimetri.setText("ERRORE");
    					}
    				}
    		});
    		enter.addActionListener(conv);
    
    
    
    		getContentPane().add(panel);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		pack();
    		setVisible(true);
    	}
    
    	public double Cen_Poll(double val) {
    		//converto da centimetri a pollici
    		val = (val/2.54);
    		return val;
    	}
    
    	public double Poll_Cen(double val) {
    		val = (val * 2.54);
    		return val;
    	}
    
    	public static void main(String[] args) {
    		Convertitore convertitore = new Convertitore();
    	}
    }
    Solo che se metto i centimetri me li converte in pollici premendo enter, se metto i pollici non fa nulla e tantomeno se non metto nulla....Come posso risolvere quel problema ho provato a mettere questi if ma non funzionano

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Spostato nel forum dedicato a Java.
    In futuro, poni in questo forum le discussioni su Java.

    PS: prendi anche visione del regolamento interno, soprattutto per la parte dei titoli, che devono dare un'idea precisa del contenuto della discussione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    17
    Scusa e grazie mille

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    17
    Ho provato anche a farlo in questo modo:

    codice:
    ActionListener conv = (new ActionListener() {
    				public void actionPerformed(ActionEvent event) {
    					if(centimetri.getText() != "" && pollici.getText() == "") {
    						double val = Double.parseDouble(centimetri.getText());
    						pollici.setText("Pollici = " + Cen_Poll(val));
    					}
    					if(centimetri.getText() == "" && pollici.getText() != "") {
    						double val = Double.parseDouble(pollici.getText());
    						pollici.setText("Centimetri = " + Poll_Cen(val));
    					}
    
    					else {
    						pollici.setText("ERRORE");
    						centimetri.setText("ERRORE");
    					}
    				}
    		});
    		enter.addActionListener(conv);
    però mi stampa sempre ERRORE e ERRORE

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da leon09
    if(centimetri.getText() != "" && pollici.getText() == "") {

    [/CODE]
    Il confronto tra stringhe non si fa con == e != ma con equals.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    17
    Ci sono forse quasi

    codice:
    ActionListener conv = (new ActionListener() {
    				public void actionPerformed(ActionEvent event) {
    					if(!centimetri.getText().equals("") && pollici.getText().equals("")) {
    						double val = Double.parseDouble(centimetri.getText());
    						pollici.setText(Cen_Poll(val) + "pollice");
    					}
    					if(centimetri.getText().equals("") && !pollici.getText().equals("")) {
    						double val = Double.parseDouble(pollici.getText());
    						centimetri.setText(Poll_Cen(val) + "cm");
    					}
    
    					else {
    						pollici.setText("ERRORE");
    						centimetri.setText("ERRORE");
    					}
    				}
    		});
    		enter.addActionListener(conv);
    Se metto pollici me li converte in centimetri, se metto invece i centimetri mi mette ERRORE ed ERRORE come mai???

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da leon09
    codice:
    					if(!centimetri.getText().equals("") && pollici.getText().equals("")) {..
    					}
    
    					if(centimetri.getText().equals("") && !pollici.getText().equals("")) {...
    					}
    
    					else {
    						pollici.setText("ERRORE");
    						centimetri.setText("ERRORE");
    					}
    				}
    Se metto pollici me li converte in centimetri, se metto invece i centimetri mi mette ERRORE ed ERRORE come mai???
    Prova a seguire il flusso di esecuzione.

    Il primo if viene valutato sempre e solo se da true si esegue il suo corpo. Poi, sia che il precedente if sia true o false si valuta il secondo. E qui c'è un problema: se la condizione del secondo if è falsa stampa ERRORE e per come lo hai scritto è compreso anche il caso del primo if.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    17
    Grazie mille ho risolto molto gentili

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.