Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    218

    Textfield mi perde la stringa

    Ho dei textfield sui quali faccio un controllo di pattern.
    Ho un focuslost che quando il textfield perde il focus chiama questo controllo, e lo fa sempre giusto.

    Alla fine del form, richiamo tutti i controlli e li succede il fatto.
    Facendo gettext() sulle textfield questa mi ritorna stringhe vuote.
    Facendo fallire i controlli.

    questa è una delle funzioni di controllo:

    codice:
    private boolean checkId() {
    		final String patternId = "[a-zA-Z0-9_ ]++";
    		return Pattern.matches(patternId, getTxf_id().getText());
    }
    Questa la funzione dove vengono persi i textfield:
    codice:
    private boolean checkErrors(){
    		boolean err = false;
    		String errormsg = "";
    		if(!checkId())
    		{
    			System.out.println("CheckID: " + getTxf_id().getText());
    			errormsg = errormsg + "L'identificatore è errato.\n";
    			err=true;
    		}
    		if(!checkVia())
    		{
    			errormsg = errormsg + "La via è errata.\n";
    				err=true;
    		}
    		if(!checkCivico())
    		{
    			errormsg = errormsg + "Il numero civico è errato.\n";
    				err=true;
    		}
    		if(!checkCap())
    		{
    			errormsg = errormsg + "Il CAP è è errato.\n";
    			err=true;
    		}
    		return err;
    	}

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Textfield mi perde la stringa

    Originariamente inviato da TheBestNeo
    Alla fine del form, richiamo tutti i controlli e li succede il fatto.
    Facendo gettext() sulle textfield questa mi ritorna stringhe vuote.
    Purtroppo non si può capire molto .... vedo solo che il reference viene ottenuto invocando getTxf_id().
    Puoi postare più codice?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    218
    Ok:
    codice:
    public class Pnl_InserisciDatiCondominio extends JPanel {
    
    	private static final long serialVersionUID = 1L;
    	private JLabel lbl_id = null;
    	private JTextField txf_id = null;
    	private JLabel lbl_via = null;
    	private JTextField txf_via = null;
    	private JLabel lbl_civico = null;
    	private JTextField txf_civico = null;
    	private JLabel lbl_provincia = null;
    	private JComboBox combox_provincia = null;
    	private JLabel lbl_comune = null;
    	private JComboBox combox_comune = null;
    	private JLabel lbl_cap = null;
    	private JTextField txf_cap = null;
    	private boolean errorFields = false;
    
    	private String id=null;
    	private String via=null;
    	private String civ=null;
    	private String cap=null;
    	/**
    	 * This is the default constructor
    	 */
    	public Pnl_InserisciDatiCondominio() {
    		super();
    		initialize();
    	}
    
    	/**
    	 * This method initializes this
    	 * 
    	 * @return void
    	 */
    	private void initialize() {
    		GridBagConstraints gridBagConstraints11 = new GridBagConstraints();
    		gridBagConstraints11.fill = GridBagConstraints.BOTH;
    		gridBagConstraints11.gridy = 3;
    		gridBagConstraints11.weightx = 1.0;
    		gridBagConstraints11.insets = new Insets(0, 10, 5, 0);
    		gridBagConstraints11.weightx = 5.0;
    		gridBagConstraints11.gridx = 1;
    		GridBagConstraints gridBagConstraints10 = new GridBagConstraints();
    		gridBagConstraints10.gridx = 0;
    		gridBagConstraints10.insets = new Insets(0, 10, 0, 0);
    		gridBagConstraints10.anchor = GridBagConstraints.WEST;
    		gridBagConstraints10.gridy = 3;
    		lbl_cap = new JLabel();
    		lbl_cap.setText("CAP");
    		GridBagConstraints gridBagConstraints9 = new GridBagConstraints();
    		gridBagConstraints9.fill = GridBagConstraints.BOTH;
    		gridBagConstraints9.gridy = 2;
    		gridBagConstraints9.weightx = 3.0;
    		gridBagConstraints9.insets = new Insets(0, 10, 5, 10);
    		gridBagConstraints9.weightx = 30.0;
    		gridBagConstraints9.gridwidth = 2;
    		gridBagConstraints9.gridx = 3;
    		GridBagConstraints gridBagConstraints8 = new GridBagConstraints();
    		gridBagConstraints8.gridx = 2;
    		gridBagConstraints8.insets = new Insets(0, 10, 0, 0);
    		gridBagConstraints8.anchor = GridBagConstraints.EAST;
    		gridBagConstraints8.gridy = 2;
    		lbl_comune = new JLabel();
    		lbl_comune.setText("Comune");
    		GridBagConstraints gridBagConstraints7 = new GridBagConstraints();
    		gridBagConstraints7.fill = GridBagConstraints.BOTH;
    		gridBagConstraints7.gridy = 2;
    		gridBagConstraints7.weightx = 1.0;
    		gridBagConstraints7.insets = new Insets(0, 10, 5, 0);
    		gridBagConstraints7.gridx = 1;
    		GridBagConstraints gridBagConstraints6 = new GridBagConstraints();
    		gridBagConstraints6.gridx = 0;
    		gridBagConstraints6.anchor = GridBagConstraints.WEST;
    		gridBagConstraints6.insets = new Insets(0, 10, 0, 0);
    		gridBagConstraints6.gridy = 2;
    		lbl_provincia = new JLabel();
    		lbl_provincia.setText("Provincia");
    		GridBagConstraints gridBagConstraints5 = new GridBagConstraints();
    		gridBagConstraints5.fill = GridBagConstraints.BOTH;
    		gridBagConstraints5.gridy = 1;
    		gridBagConstraints5.weightx = 1.0;
    		gridBagConstraints5.insets = new Insets(0, 10, 5, 10);
    		gridBagConstraints5.weightx = 38.0;
    		gridBagConstraints5.gridx = 5;
    		GridBagConstraints gridBagConstraints4 = new GridBagConstraints();
    		gridBagConstraints4.gridx = 4;
    		gridBagConstraints4.anchor = GridBagConstraints.EAST;
    		gridBagConstraints4.insets = new Insets(0, 10, 0, 0);
    		gridBagConstraints4.gridy = 1;
    		lbl_civico = new JLabel();
    		lbl_civico.setText("Civico");
    		GridBagConstraints gridBagConstraints3 = new GridBagConstraints();
    		gridBagConstraints3.fill = GridBagConstraints.BOTH;
    		gridBagConstraints3.gridy = 1;
    		gridBagConstraints3.weightx = 1.0;
    		gridBagConstraints3.insets = new Insets(0, 10, 5, 40);
    		gridBagConstraints3.gridwidth = 3;
    		gridBagConstraints3.gridwidth = 4;
    		gridBagConstraints3.gridx = 1;
    		GridBagConstraints gridBagConstraints2 = new GridBagConstraints();
    		gridBagConstraints2.gridx = 0;
    		gridBagConstraints2.anchor = GridBagConstraints.WEST;
    		gridBagConstraints2.insets = new Insets(0, 10, 0, 0);
    		gridBagConstraints2.gridy = 1;
    		lbl_via = new JLabel();
    		lbl_via.setText("Via");
    		GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
    		gridBagConstraints1.fill = GridBagConstraints.BOTH;
    		gridBagConstraints1.gridy = 0;
    		gridBagConstraints1.weightx = 1.0;
    		gridBagConstraints1.gridwidth = 5;
    		gridBagConstraints1.insets = new Insets(0, 10, 5, 10);
    		gridBagConstraints1.gridx = 1;
    		GridBagConstraints gridBagConstraints = new GridBagConstraints();
    		gridBagConstraints.gridx = 0;
    		gridBagConstraints.insets = new Insets(0, 10, 0, 0);
    		gridBagConstraints.gridy = 0;
    		lbl_id = new JLabel();
    		lbl_id.setText("Identificatore");
    		this.setSize(480, 200);
    		this.setLayout(new GridBagLayout());
    		this.setBorder(BorderFactory.createTitledBorder(null, "Dati Condominio", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, new Font("Tahoma", Font.PLAIN, 11), Color.black));
    		this.add(lbl_id, gridBagConstraints);
    		this.add(getTxf_id(), gridBagConstraints1);
    		this.add(lbl_via, gridBagConstraints2);
    		this.add(lbl_civico, gridBagConstraints4);
    		this.add(lbl_provincia, gridBagConstraints6);
    		this.add(getCombox_provincia(), gridBagConstraints7);
    		this.add(lbl_comune, gridBagConstraints8);
    		this.add(lbl_cap, gridBagConstraints10);
    		this.setVisible(true);
    		this.add(getTxf_via(), gridBagConstraints3);
    		this.add(getTxf_civico(), gridBagConstraints5);
    		this.add(getCombox_comune(), gridBagConstraints9);
    		this.add(getTxf_cap(), gridBagConstraints11);
    	}
    
    	private JTextField getTxf_id() {
    		if (txf_id == null) {
    			txf_id = new JTextField();
    			txf_id.addFocusListener(new java.awt.event.FocusAdapter() {   
    				public void focusGained(java.awt.event.FocusEvent e) {    
    					txf_id.setFont(new Font("Tahoma", Font.PLAIN, 11));
    					txf_id.setForeground(Color.black);
    				}
    				public void focusLost(java.awt.event.FocusEvent e) {
    					if(!checkId())
    					{
    						txf_id.setFont(new Font("Tahoma", Font.BOLD, 11));
    						txf_id.setForeground(Color.red);
    					}
    					else
    					{
    						txf_id.setFont(new Font("Tahoma", Font.BOLD, 11));
    						txf_id.setForeground(Color.green);
    						id=txf_id.getText();
    					}
    				}
    
    			});
    		}
    		return txf_id;
    	}
    	
    	private JTextField getTxf_via() {
    		if (txf_via == null) {
    			txf_via = new JTextField();
    			txf_via.addFocusListener(new java.awt.event.FocusAdapter() {   
    				public void focusGained(java.awt.event.FocusEvent e) {    
    					txf_via.setFont(new Font("Tahoma", Font.PLAIN, 11));
    					txf_via.setForeground(Color.black);
    				}
    				public void focusLost(java.awt.event.FocusEvent e) {
    					if (!checkVia()) {
    						txf_via.setFont(new Font("Tahoma", Font.BOLD, 11));
    						txf_via.setForeground(Color.red);
    					} else {
    						txf_via.setFont(new Font("Tahoma", Font.BOLD, 11));
    						txf_via.setForeground(Color.green);
    						via=txf_via.getText();
    					}
    				}
    
    			});
    		}
    		return txf_via;
    	}
    
    	private JTextField getTxf_civico() {
    		if (txf_civico == null) {
    			txf_civico = new JTextField();
    			txf_civico.addFocusListener(new java.awt.event.FocusAdapter() {   
    				public void focusGained(java.awt.event.FocusEvent e) {    
    					txf_civico.setFont(new Font("Tahoma", Font.PLAIN, 11));
    					txf_civico.setForeground(Color.black);
    				}
    				public void focusLost(java.awt.event.FocusEvent e) {
    					if (!checkCivico()) {
    						txf_civico.setFont(new Font("Tahoma", Font.BOLD, 11));
    						txf_civico.setForeground(Color.red);
    					} else {
    						txf_civico.setFont(new Font("Tahoma", Font.BOLD, 11));
    						txf_civico.setForeground(Color.green);
    						civ=txf_civico.getText();
    					}
    				}
    			});
    		}
    		return txf_civico;
    	}
    
    	private JComboBox getCombox_provincia() {
    		if (combox_provincia == null) {
    			combox_provincia = new JComboBox(Provincia.values());
    			combox_provincia.addItemListener(new java.awt.event.ItemListener() {
    				public void itemStateChanged(java.awt.event.ItemEvent e) {
    					combox_comune.removeAllItems();
    					for(String com : Parser.recuperaComuniDi(combox_provincia.getSelectedItem().toString()))
    					{
    						combox_comune.addItem(com);
    					}
    					combox_comune.repaint();
    				}
    			});
    		}
    		return combox_provincia;
    	}
    
    	private JComboBox getCombox_comune() {
    		if (combox_comune == null) {
    			combox_comune = new JComboBox(Parser.recuperaComuniDi(combox_provincia.getSelectedItem().toString()).toArray());
    		}
    		return combox_comune;
    	}
    
    	private JTextField getTxf_cap() {
    		if (txf_cap == null) {
    			txf_cap = new JTextField();
    			txf_cap.addFocusListener(new java.awt.event.FocusAdapter() {   
    				public void focusGained(java.awt.event.FocusEvent e) {    
    					txf_cap.setFont(new Font("Tahoma", Font.PLAIN, 11));
    					txf_cap.setForeground(Color.black);
    				}
    				public void focusLost(java.awt.event.FocusEvent e) {
    					if (!checkCap()) {
    						txf_cap.setFont(new Font("Tahoma", Font.BOLD, 11));
    						txf_cap.setForeground(Color.red);
    					} else {
    						
    						txf_cap.setFont(new Font("Tahoma", Font.BOLD, 11));
    						txf_cap.setForeground(Color.green);
    						cap=txf_cap.getText();
    					}
    				}
    			});
    		}
    		return txf_cap;
    	}
    
    	private boolean checkId() {
    		final String patternId = "[a-zA-Z0-9_ ]++";
    		System.out.println("CheckID: " + Pattern.matches(patternId, getTxf_id().getText()) +" - "+ getTxf_id().getText());
    		return Pattern.matches(patternId, getTxf_id().getText());
    	}
    	
    	private boolean checkVia() {
    		final String patternVia = "[a-zA-Z 'ìèéòàù]++";
    		return Pattern.matches(patternVia, getTxf_via().getText());
    	}
    	
    	private boolean checkCivico() {
    		final String patternCivico = "[0-9]++(/[0-9]++)?+[A-Za-z]?+";
    		return Pattern.matches(patternCivico, getTxf_civico().getText());
    	}
    	
    	private boolean checkCap() {
    		final String patternCap = "[0-9]{5}+";
    		return Pattern.matches(patternCap, getTxf_cap().getText());
    	}
    	
    	private boolean checkErrors(){
    		boolean err = false;
    		String errormsg = "";
    		if(!checkId())
    		{
    			System.out.println("CheckID: " + getTxf_id().getText());
    			errormsg = errormsg + "L'identificatore è errato.\n";
    			err=true;
    		}
    		if(!checkVia())
    		{
    			errormsg = errormsg + "La via è errata.\n";
    			err=true;
    		}
    		if(!checkCivico())
    		{
    			errormsg = errormsg + "Il numero civico è errato.\n";
    				err=true;
    		}
    		if(!checkCap())
    		{
    			errormsg = errormsg + "Il CAP è è errato.\n";
    			err=true;
    		}
    		return err;
    	}
    	
    	public DatiCondominio getDatiCondominio()
    	{
    		System.out.println("Errorfields: " + errorFields);
    		if(checkErrors())
    		//if(errorFields)
    		{
    			JOptionPane.showMessageDialog(null, "Errori nei campi, controllare", "Errore", JOptionPane.ERROR_MESSAGE);
    			return null;
    		}
    		else
    		{
    			String id = getTxf_id().getText();
    			String via = getTxf_via().getText();
    			String civico = getTxf_civico().getText();
    			Comune comune = new Comune(combox_comune.getSelectedItem().toString());
    			Provincia provincia = Provincia.valueOf( combox_provincia.getSelectedItem().toString());
    			String cap = getTxf_cap().getText();
    			Indirizzo indirizzo = new Indirizzo(via,civico,comune,provincia,cap);
    			DatiCondominio datiC = new DatiCondominio(id,indirizzo);
    			return datiC;
    		}
    		
    	}
    }
    Il problema sorge quando da un'altra gui richiamo il getDatiCondominio();

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    218
    Risolto, problema stupido.

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.