Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    18

    [JAVA] problemi con setText() di JTextField

    ciao a tutti sto cercando di implementare una calcolatrice con GUI per imparare qualche cosa ma non mi esceeeeeeeeeeeeeeeeee che palleeee!!

    riporto solo il metodo ascoltatore:

    public void actionPerformed(ActionEvent e) {
    Integer sommastringa=new Integer(0);

    if(txt.getText().equals("0"))
    txt.setText("");

    if(e.getActionCommand().equals("+") || e.getActionCommand().equals("-") || e.getActionCommand().equals("*")|| e.getActionCommand().equals("/") || e.getActionCommand().equals("=")){

    operatore=e.getActionCommand();
    segno.setText(operatore);
    txt.setText("");
    sommaparziale=Integer.parseInt(num);
    sommaparziale=calcola(sommaparziale
    operatore.charAt(0));
    sommastringa= new Integer(sommaparziale);
    txt.setText(sommastringa.toString())
    txt.setText("");

    }
    else{
    num=txt.getText();
    num+=e.getActionCommand();
    txt.setText(num);
    }

    }



    il problema mi sa che è nelle istruzioni:

    txt.setText(sommastringa.toString())
    txt.setText("");

    non mi visualizza il risultato di una somma, che palleeeee
    chi sa spiegarmi perchè?
    GRAZIEEEE E BUON ANNO A TUTTI!!
    beppegrillo.it

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    160
    codice:
    txt.setText(sommastringa.toString())
    txt.setText("");
    Il risultato te lo visualizza ma poi lo cancelli subito dopo O_o.

    txt.setText(sommastringa.toString())
    setta come testo il risultato.

    txt.setText("");
    setta come testo la stringa vuota.


    Non ho capito neanche questo:
    codice:
    if(txt.getText().equals("0"))
    txt.setText("");
    Perchè se è 0 lo fai diventare vuoto? Quando farà il parsing darà sicuramente NumberFormatException.

    Ciao


  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    18
    Innanzitutto grazie mile per la risposta:

    Allora ti spiego il perchè di alcune istruzioni:

    __________________________________________________ _

    txt.setText(sommastringa.toString())
    txt.setText("");
    __________________________________________________ __

    Ho provato l'esecuzione del codice anche senza txt.setText("") e non funziona lo stesso, ho insetito questa istruzione perchè vorrei che dopo la visualizzazione del risultato alla pressione di qualsiasi tasto si cancelli sullla casella di testo qualsisiai numero per poter poi poter fare un'altro calcolo.

    __________________________________________________ __
    if(txt.getText().equals("0"))
    txt.setText("");
    __________________________________________________ ___

    Dato che nelle calcolatrici il display si presenta con il numero zero prima di fare qualsiasi calcolo, volevo fare in modo che quando si inizi a cliccare sul primo num si calcelli tutto per poter visualizzare i numeri appena premuti.
    Probabilmente ho fatto delle cazzate, non sono per niente bravo, il problema maggior eme lo da qui però, ho provato in tutti i modi:

    txt.setText(sommastringa.toString())


    GRAZIE MILLE E BUON ANNO!!
    beppegrillo.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    160
    ti giuro che ci ho passato 20 min almeno sul codice e non riesco a capire come funziona questa calcolatrice.
    Immagina che io devo fare 3+2.
    Clicco 3, metto la stringa in num e setto il textfield.
    Clicco +, entra nell'if, operatore=+, scrivo il segno nel textfield, azzero la casella per inserire il nuovo numero, in sommaparziale metto il primo numero della somma (il secondo devo ancora inserirlo).
    La funzione calcola aggiunge sommaparziale a una variabile globale che contiene il risultato fino a quel momento?
    scrivi nel textfield il risultato della somma (0+3 suppongo) e lo cancello subito dopo. ???
    Il risultato è cancellato così velocemente che non te ne accorgi che è stato scritto.
    Continuiamo, digito il 2, viene scritto nel textfield e clicco il tasto =, entro nell'if, salvo l'operatore, azzero il textfield, sommaparziale=2, il calcola() dovrebbe sommare al 3 ottenuto prima questo 2. Ma come fa a capire che il segno di prima era +? lui applica l'= in questo passaggio? Che cosa il segno = e quindi cosa restituisce la funzione calcola()?

    Cerca di mettere dei System.out.println() per vedere come procede passo passo il conto.

    Ciao

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 © 2024 vBulletin Solutions, Inc. All rights reserved.