Salve,
sto realizzando un applicativo grafico...
ho una finestra...quando uno clicca su un pulsante si apre un'altra finestra con una JLabel dove uno deve inserire del testo poi spinge invio e il testo viene preso dalla finestra 'madre' ma non riesco a fare aspettare la finestra 'madre'
cioè
questo è la finestra che si apre quando uno clicca sul pulsante...in pratica è una jtextfield...e quando uno scrive ed invia salva il risultato in output e chiude la finestra...poi getResult restituisce il messaggio inseritocodice:package graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JTextField; public class Get_test extends JFrame implements ActionListener{ private String input; private String output; private JTextField text; public Get_test(String s) { super("JTextField"); input=s; this.setBounds(150, 150, 200, 50); text= new JTextField(); text.addActionListener(this); this.add(text); this.setVisible(); } public void actionPerformed(ActionEvent arg0) { output=text.getText(); this.dispose(); } public String getResult() { return output; } }
ora il metodo che gestisce l'evento 'clicca sul pulsante per aprire la finestra':
in pratica tolgo quello che c'è sul pannello, poi invoco la classe Get_test che è quella di sopra poi non so come fare a fare quella chiamata aspettando il risultatocodice:private void create_canale() throws InterruptedException { this.remove(graph); this.repaint(); Get_test gt = new Get_test("canale"); String result=""; Thread.sleep(100000); while (result==null){ result= gt.getResult(); } System.out.println(result); DefaultGraphCell vertex = createDefaultGraphCell(); vertex = createVertex("World2", 190, 190, 70, 90, Color.blue, true); graph.getGraphLayoutCache().insert(vertex); this.add(graph); this.repaint(); }
cioè se faccio quel while lì, si pianta tutto e non mi fa scrivere nella jtextfield...ho provato anche la sleep ma non funziona neanche quello
come dovrei fare? ho provato ad usare JDialog ma non se sono uscito fuori...
Grazie a chi risponderà
Daniele

Rispondi quotando