Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problemi con interfaccia grafica: input da textarea

    Buongiorno a voi tutti. Sono alle prime armi con le interfacce grafiche Java, e oggi, a titolo di esercizio accademico, ho provato a creare un programma che abbia due aree di testo e un pulsante: inserendo nella prima una stringa di caratteri e premendo il pulsante, il software deve restituire nella seconda il numero di caratteri da cui è costituita la stringa stessa. Il programma non funziona, ma non capisco dove sbaglio: vi posto il codice qui sotto.
    codice:
    import java.awt.Container;
    import java.awt.FlowLayout;
    import java.awt.GridLayout;
    import java.awt.TextArea;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    
    
    public class FrameDemo extends JPanel {
        
        public static void main(String[] args) {
            String stringa;
            JFrame frame = new JFrame("Conta caratteri");            /*Qui viene creato il form*/
            frame.setSize(400, 100);
            Container c = frame.getContentPane();
            frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
            frame.setLayout(new FlowLayout());
            
            JTextField risultato = new JTextField(9);                //Qui le textarea
            risultato.setEditable(false);
            JTextField ingresso = new JTextField(15);
            c.add(ingresso);
            c.add(risultato);
            //System.out.println("cio");
    
           String stringa1 = ingresso.getText();
               System.out.println(stringa1);
            JButton conta = new JButton("Conta");
            //conta.addActionListener(null);
            c.add(conta);
            
            conta.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent event) {
                    int num_caratteri = stringa1.length();
                    
                    risultato.setText("Caratteri: " + num_caratteri);
                }
            });
            frame.setVisible(true);
        }
        
    
    }
    Ho creato una classe sola, e tutto gira nella funzione main (so che non è il massimo, ma è stato lo stesso mio professore a dirci per stavolta di fare così).
    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Java ha un forum dedicato. Sposto la 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 L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Intanto sposta
    String stringa1 = ingresso.getText();

    dentro il listener,
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Ora funziona,
    grazie mille davvero!
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.