Boas galera, tudo bem?
sou novo em programação cliente/servidor e relativamente novo com programação visual em Java também.
gostaria de saber como faço para exibir textos em um textarea, tentei o txtArea.append mas não obtive resultados ainda.
abaixo a classe em que desejo imprimir as mensagens:
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.JOptionPane;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* servidor.java
*
* Created on 22/05/2010, 10:07:48
*/
/**
*
* @author R
*/
public class servidor extends javax.swing.JFrame {
ServerSocket socketServidor; //cria socket do servidor
Socket conexaoServidor;
ObjectInputStream msgeS; //input Stream irá captar a entrada de dados
ObjectOutputStream msgsS; //output Stream irá captar a saída de dados
/** Creates new form servidor */
public servidor() {
initComponents();
}
public void runServer() throws ClassNotFoundException, IOException{
String msgDoCliente ="";
try {
socketServidor = new ServerSocket(5000,3); //Tenta criar um Socket no servidor para conexão do cliente
while(true){// INICIO DO WHILE
txtAreaServidor.append("Aguardando conexão...");
// Conecta
conexaoServidor = socketServidor.accept();
txtAreaServidor.append("Conexão estabelecida");
// Prepara Entrada e Saída
msgeS = new ObjectInputStream(conexaoServidor.getInputStream()); // captura buffer de entrada
msgsS = new ObjectOutputStream(conexaoServidor.getOutputStream()); // captura buffer de saída
msgsS.flush(); //limpa buffer de saida;
txtAreaServidor.append("Entrada/Saída de dados OK");
do{
//System.out.println("Aguardando mensagem do cliente");
msgDoCliente = (String)msgeS.readObject(); // Lê o Buffer de entrada do servidor, faz um "Cast" e converte para String
txtAreaServidor.append(" Recebida :" + msgDoCliente); //Exibe a Mensagem na Tela
msgsS.writeObject("Chegou"); // Escreve no Buffer de saída do servidor, onde o cliente irá ler
txtAreaServidor.append("Retornando que chegou"); // Escreve no servidor também para confirmar a chegada
}while(!msgDoCliente.equalsIgnoreCase("sair"));
}// FIM DO WHILE
} catch (IOException ex) {
JOptionPane.showMessageDialog(null,"Falha na Conexão");
}
finally{ // Depois de tudo ...
//System.out.println(" Encerrando Conexão ");
msgsS.close(); //Fecha o Buffer de saída
msgeS.close(); //Fechar o Buffer de Entrada
conexaoServidor.close(); //Fecha a conexão
}
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
panelServidor = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
txtAreaServidor = new javax.swing.JTextArea();
txtFieldServidor = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setBounds(new java.awt.Rectangle(0, 0, 0, 0));
setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
setMinimumSize(new java.awt.Dimension(500, 400));
setName("servidor"); // NOI18N
setResizable(false);
panelServidor.setBackground(new java.awt.Color(204, 204, 255));
txtAreaServidor.setColumns(20);
txtAreaServidor.setEditable(false);
txtAreaServidor.setRows(5);
jScrollPane1.setViewportView(txtAreaServidor);
txtFieldServidor.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtFieldServidorActionPerformed(evt);
}
});
javax.swing.GroupLayout panelServidorLayout = new javax.swing.GroupLayout(panelServidor);
panelServidor.setLayout(panelServidorLayout);
panelServidorLayout.setHorizontalGroup(
panelServidorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelServidorLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelServidorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 645, Short.MAX_VALUE)
.addComponent(txtFieldServidor, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 645, Short.MAX_VALUE))
.addContainerGap())
);
panelServidorLayout.setVerticalGroup(
panelServidorLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelServidorLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 337, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtFieldServidor, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(panelServidor, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(panelServidor, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>
private void txtFieldServidorActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
servidor novoServidor = new servidor();
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new servidor().setVisible(true);
servidor novoServidor = new servidor();
}
});
}
// Variables declaration - do not modify
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JPanel panelServidor;
private javax.swing.JTextArea txtAreaServidor;
private javax.swing.JTextField txtFieldServidor;
// End of variables declaration
}