Effettivamente hai ragione, quel che mi occorre ora è fare un pò di pratica... Dopo essermi documentato un pò ho prodotto questo (sempre "lavorando" sul tuo):
che funziona esattamente come dovrebbe (pur non servendo a nulla...).codice:CODICE C: #include <stdio.h> main () { char nome[100], cognome[100]; int age; scanf("%s", nome); scanf("%s", cognome); scanf("%d", &age); printf("%s\n", nome); printf("%s\n", cognome); printf("%d\n", age); } CODICE JAVA: import java.awt.BorderLayout; import java.awt.event.*; import java.io.*; import javax.swing.*; public class TalkWithC extends JPanel implements ActionListener { private JTextField testo; private JTextField testo2; private JTextField testo3; private JLabel lab; private JLabel lab2; private JLabel lab3; private JButton bottone; private JTextArea output; private JPanel up; /** Creates a new instance of TalkWithC */ public TalkWithC() { super(); this.setLayout(new BorderLayout()); up = new JPanel(); testo = new JTextField(10); testo2 = new JTextField(10); testo3 = new JTextField(10); lab = new JLabel("Nome"); lab2 = new JLabel("Cognome"); lab3 = new JLabel("Eta"); bottone = new JButton("Test"); bottone.addActionListener(this); output = new JTextArea("Output: \n"); output.setEditable(false); output.setRows(10); up.add(lab); up.add(testo); up.add(lab2); up.add(testo2); up.add(lab3); up.add(testo3); up.add(bottone); this.add(up, BorderLayout.NORTH); this.add(output, BorderLayout.CENTER); } public void actionPerformed(ActionEvent e) { Runtime r = Runtime.getRuntime(); Process p; try { p = r.exec("C:\\Documents and Settings\\Ida\\Desktop\\Nuo\\prova.exe"); BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream())); PrintWriter writer = new PrintWriter(new OutputStreamWriter(p.getOutputStream())); writer.write(testo.getText() + "\n"); writer.write(testo2.getText() + "\n"); writer.write(testo3.getText() + "\n"); writer.flush(); String line; while((line = reader.readLine()) != null) { output.append(line+"\n"); } reader.close(); int status = p.exitValue(); } catch(Exception ex) { ex.printStackTrace(); } } }
Solo due considerazioni:
1) secondo te è corretto acquisire anche l'eta (quindi un valore numerico) con getText (quindi come stringa...)? C'è un modo migliore? Secondo me non è molto corretto, ma poi ho visto (modificando il main.c) che in realtà il valore acquisito viene trattato proprio come un intero, quindi no problemm (almeno credo...)
2) se le 3 TextField le volessi disporre una sotto l'altra e non una dopo l'altra come dovrei fare?
Grazie![]()

Rispondi quotando