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