Actualización: Así que desea esperar a que el usuario ingrese algo desde la GUI. Esto es posible, pero debe ser sincronizado ya que la GUI se ejecuta en otra secuencia.
lo tanto, los pasos son:
- crear un objeto "soporte" que deligates el resultado de GUI para "lógica" hilo
- la "lógica" hilo espera para la entrada (usando
holder.wait()
)
- texto Cuando el usuario ha introducido que sincroniza el objeto "soporte" y da el resultado + notifica el hilo "lógica" (con
holder.notify()
)
- el hilo "lógica" se libera de su cerradura y continúa.
ejemplo completo:
public static void main(String... args) throws Exception {
final List<Integer> holder = new LinkedList<Integer>();
final JFrame frame = new JFrame("Test");
final JTextField field = new JTextField("Enter some int + press enter");
frame.add(field);
field.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
synchronized (holder) {
holder.add(Integer.parseInt(field.getText()));
holder.notify();
}
frame.dispose();
}
});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
// "logic" thread
synchronized (holder) {
// wait for input from field
while (holder.isEmpty())
holder.wait();
int nextInt = holder.remove(0);
System.out.println(nextInt);
//....
}
}
todavía no entiendo la pregunta - ¿qué quiere decir con "mantener la ejecución"? Aparte de eso: lee un tutorial básico de Swing y un api doc de campo de texto (pista: setAction podría valer la pena mirarlo :-) – kleopatra