es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Disparador de ObjectOutputStream escribiendo usando ActionListener.

Básicamente, estoy trabajando en un proyecto que requiere que envíe una matriz que se llena con cadenas a través de una GUI a un servidor. Una vez que se llena la matriz, quiero que un botón “Enter” la envíe al servidor a través del socket. El problema es que no sé cómo podría hacer un actionListener que pueda hacer eso en este escenario.

Esta es la conexión en el socket del cliente:

public class Cliente {
public Cliente() {
try {
InetAddress addr = InetAddress.getLocalHost();
System.out.println(“Conectando al servidor…”);
Socket client = new Socket(addr, 10000);

        OutputStream out = client.getOutputStream();
        ObjectOutputStream oout = new ObjectOutputStream(out);

        String svResponse;

        while (true) {
            oout.writeObject(sequence);
            oout.flush();

            InputStream in = client.getInputStream();
            ObjectInputStream oin = new ObjectInputStream(in);
            ArrayList<string> sequenceServ = (ArrayList<string>) oin.readObject();
            System.out.println(sequenceServ.toString());

            InputStreamReader inReader = new InputStreamReader(in);
            BufferedReader buffReader = new BufferedReader(inReader);
            svResponse = buffReader.readLine();
            System.out.println(svResponse);
        }

        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        }
    }

Básicamente, lo que estoy tratando de hacer es tener un botón en mi GUI que desencadene algo así como oout.writeObject(sequence);

Por favor, siéntase libre de decirme si algo parece confuso ya que soy consciente de que la explicación no está muy bien hecha ya que no estoy seguro de cómo formularlo por mi cuenta.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Se puede crear un ActionListener para el botón en tu GUI que desencadenará el comando oout.writeObject(sequence). Puedes hacer esto creando una clase interna anónima que implemente la interfaz ActionListener y anulando el método actionPerformed.

    Por ejemplo:

    button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            oout.writeObject(sequence);
        }
    });
    

Comments are closed.