Problema acquisire Calenar da tastiera in una JTextField

di il
12 risposte

Problema acquisire Calenar da tastiera in una JTextField

Salve ragazzi ho un porblema ho un frame con diverse JTextField all'interno tra queste JTextField c'è una che deve essere assegnata ad un tipo Calenar ma non so' come risolvere....

12 Risposte

  • Re: Problema acquisire Calenar da tastiera in una JTextField

    broke31 ha scritto:


    ho un frame con diverse JTextField all'interno tra queste JTextField c'è una che deve essere assegnata ad un tipo Calenar
    Essendo il contenuto del campo una stringa, devi per forza fare un "parsing" per ottenere innanzitutto un java.util.Date (non puoi ottenere subito un Calendar). Poi potrai impostare il Date in un Calendar.

    Quindi devi usare innanzitutto un DateFormat o un SimpleDateFormat per il parsing String -> Date. Per altri dubbi su queste classi, chiedi.
  • Re: Problema acquisire Calenar da tastiera in una JTextField

    Non ho ben capito non devo usare una jtextfield giusto? potresti farmi un esempio per piacere ? grazie mille
  • Re: Problema acquisire Calenar da tastiera in una JTextField

    broke31 ha scritto:


    non ho ben capito non devo usare una jtextfield giusto?
    Ma va anche bene usare un JTextField, purché hai chiaro il fatto che non puoi fare una banale "assegnazione" del testo ad un Calendar, né fare in modo che JTextField "sappia" o usi un Calendar. JTextField contiene del testo, se è una data, devi fare tu il "parsing" per ottenere innanzitutto un java.util.Date.

    Se non gradisci questo, esistono componenti appositi che operano come "date chooser" ma non sono nel framework standard di Java, serve una libreria esterna, come ad esempio la ben nota JCalendar.
  • Re: Problema acquisire Calenar da tastiera in una JTextField

    Quindi mi prendo la stringa la casto a data e poi la posso assegnare al calendar giusto?
  • Re: Problema acquisire Calenar da tastiera in una JTextField

    broke31 ha scritto:


    Quindi mi prendo la stringa la casto a data
    No, non "cast" nel senso (tipo).
    Devi usare DateFormat o SimpleDateFormat e il loro metodo

    Date parse(String)

    broke31 ha scritto:


    e poi la posso assegnare al calendar giusto?
    Ad un Calendar puoi assegnare un Date.
  • Re: Problema acquisire Calenar da tastiera in una JTextField

    Quindi Calendar a= Data.parse(string); giusto ho tutto ben chiaro?
  • Re: Problema acquisire Calenar da tastiera in una JTextField

    broke31 ha scritto:


    Quindi Calendar a= Data.parse(string); giusto ho tutto ben chiaro?
    NO.
    a) Ottieni una istanza di DateFormat o SimpleDateFormat. Il formato della data che vuoi gestire lo devi sapere tu. Se è "custom", a tua scelta, lo puoi imporre tu con SimpleDateFormat, altrimenti DateFormat ha dei metodi factory che si basano su un Locale implicito o esplicito e su vari stili possibili ma il formato alla fine è fisso in base a quei parametri.

    b) Invochi parse(testo) sul dateformat ed ottieni un java.util.Date .

    c) Istanzi un Calendar: Calendar.getInstance() oppure new GregorianCalendar(). Non è esattamente la stessa cosa nel senso che il primo è più generico e a seconda del Locale corrente potrebbe non dare un "Gregorian" calendar (per Locale es. giapponese). Ma per il tuo uso vanno sicuramente bene entrambi.

    d) Assegni il Date al Calendar con calendar.setTime(date)
  • Re: Problema acquisire Calenar da tastiera in una JTextField

    Quindi credo mi vada bene un simpleDataFormat visto che voglio far inserire una data da tastiera scritta come gg/mm/aa tu cosa ne pensi ?
  • Re: Problema acquisire Calenar da tastiera in una JTextField

    broke31 ha scritto:


    Quindi credo mi vada bene un simpleDataFormat visto che voglio far inserire una data da tastiera scritta come gg/mm/aa tu cosa ne pensi ?
    Sì va bene SimpleDateFormat.
  • Re: Problema acquisire Calenar da tastiera in una JTextField

    Ti potrei consigliare il JDateChooser della toedter che ha già i metodi getDate() e setDate() preimpostate e ti mostra la data nel formato da te preferito



    ciao.
  • Re: Problema acquisire Calenar da tastiera in una JTextField

    JDateChooser non me lo fa istanziare(credo non faccia parte delle librerie standard di java) ho provato anche con il parsing come dice endbin ma non ci sono riuscito questo è quello che ho scritto:
    
    
    public Calendar trasformaJTextFieldInCalendar(JTextField field) 
    	{
    		Calendar app= Calendar.getInstance();
    		
    
    		SimpleDateFormat dataPart = new SimpleDateFormat();
    		try {
    			app.setTime(dataPart.parse(field.getText()));
    		} catch (ParseException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return app;
    
    
  • Re: Problema acquisire Calenar da tastiera in una JTextField

    broke31 ha scritto:


    JDateChooser non me lo fa istanziare(credo non faccia parte delle librerie standard di java)

    andbin ha scritto:


    esistono componenti appositi che operano come "date chooser" ma non sono nel framework standard di Java, serve una libreria esterna, come ad esempio la ben nota JCalendar.
    Quoto la mia 2° risposta.
    (a volte ho l'impressione che la gente non legga bene le mie risposte ....)

    broke31 ha scritto:


    SimpleDateFormat dataPart = new SimpleDateFormat();
    Il SimpleDateFormat lo devi istanziare passando un formato. E questo formato è composto da lettere particolari che sono ben documentate/spiegate nella documentazione javadoc di SimpleDateFormat.

    Per il resto mi pare corretto.
Devi accedere o registrarti per scrivere nel forum
12 risposte