Problema ao passar valores de um Jtextfield para outra classe

1 resposta
D

Olá a todos!!
Sei que pode parecer estranho, um cara novo, primeira mensagem, pedindo ajuda ... mas é a primeira vez estou desenvolvendo um chat e estou com um problema que não consigo resolver!!
Sei que ja tem em outros tópicos a solução, mas tentei todas as maneiras e não consegui resolver!!

O meu problema é que eu tenho que passar os dados dos JTextFields da classe JFLogin para a classe Layout_Chat!
Criei as funções getip, getnome e getporta, e tentei usar elas para atribuir os valores dos TextFields para as variávies, mas está dando erro!!
Alguém poderia me ajudar por favor??

Aqui segue o código das duas classes:

package com.Chat;
import java.awt.Color;

import java.awt.event.*;
import java.awt.*;
import java.io.*;
import java.net.Socket;
import javax.swing.*;


public class JFLogin extends JFrame {
	private Container c;
	private JLabel lblNome;
	private JTextField txtNome;
	private JLabel lblIpServidor;
	private JTextField txtIpServidor;
	private JLabel lblPorta;
	private JTextField txtPorta;
	private JButton btnEntrar;
	private PrintWriter saida = null;
	public JFLogin() {
		c = new Container();
		setTitle("Login - Chat ");
		setSize(350,250);
		c = getContentPane();
		c.setLayout(null);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	
					
		lblNome = new JLabel("Nome:");
		lblNome.setBounds(88, 30, 100, 25);
		
		txtNome = new JTextField(10);
		txtNome.setBounds(150, 30, 175, 22);

		lblIpServidor = new JLabel("Ip Servidor:");
		lblIpServidor.setBounds(59, 70, 100, 25);
		
		txtIpServidor = new JTextField(10);
		txtIpServidor.setBounds(150, 70, 175, 22);
		
		lblPorta = new JLabel("Porta:");
		lblPorta.setBounds(92, 110, 100, 25);
		
		txtPorta = new JTextField("5555");
		txtPorta.setBounds(150, 110, 175, 22);
		
		btnEntrar = new JButton("Entrar");
		btnEntrar.setBounds(30, 160, 300, 25);
			
		c.add(lblNome);
		c.add(txtNome);
		c.add(lblIpServidor);
		c.add(txtIpServidor);
		c.add(lblPorta);
		c.add(txtPorta);
		c.add(btnEntrar);
		
		
		btnEntrar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				if(verificarcampos()==true){
					dispose();
					Layout_Chat lc = new Layout_Chat();
					lc.setVisible(true);
					
				}
				else{
					JOptionPane.showMessageDialog(null, "Verifique os campos");
				}
			}});

	}
	

	
	
	public String getnome(){
		return txtNome.getText();
	}
	public String getporta(){
		return txtPorta.getText();
	}
	public String getip(){
		return txtIpServidor.getText();
	}
	public boolean verificarcampos(){
		boolean verificar=true;
		if(txtIpServidor.getText().trim().isEmpty()){
			verificar=false;	
		}		
		return verificar;		
	}
	}
package com.Chat;
import javax.swing.*;



import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;

public class Layout_Chat extends JFrame{
	private Container c;
	private JButton botaoenviar;
	private JTextArea entrada2;
	private JTextArea entrada1;
	private JScrollPane scrollBar1;
    private JScrollPane scrollBar2;
    private JScrollPane scrollBar3;
    private JLabel Usuario;
    private JLabel ListaOline;
    private JList conectados;
    private Socket conexao;
    private PrintStream saida;
    private String msg;
    private ArrayList<String> listaconectados = null;
    private String ipserver;
    private int portaserver;
    private String nomeusuario;
    private JFLogin login;
 
    BufferedReader servidor ;
    
	public Layout_Chat(){
		super("Chat");
		

		c = getContentPane();
	
		setResizable(false);
		c.setLayout(null);
		
		login = new JFLogin();
		
		portaserver = Integer.parseInt(login.getporta());///////////////////<<<-----------------------------
		ipserver = login.getip();///////////////////<<<--------------------------------
		
		
		listaconectados = new ArrayList<String>();
		
		try {
			String mensagem;
			
			conexao = new Socket(ipserver, portaserver);
	          //Instancia do atributo saida, obtem os objetos que permitem controlar o fluxo de comunicação
            saida = new PrintStream(conexao.getOutputStream());                        
            servidor = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
            
            nomeusuario = login.getnome(); //////////////////////<<<------------------
            
            
            if(nomeusuario==null){
            	JOptionPane.showMessageDialog(null,"*Erro* Nenhum nome foi digitado!");
            	System.exit(0);
            }            
            
            
			            
          //envia o nome digitado para o servidor
    	    saida.println(nomeusuario.toUpperCase());//toUppercase ignora case sensitive
    	    mensagem = servidor.readLine();		
    	  
    	    
    	    System.out.println(mensagem);
			if(mensagem.equals("nomeexistente")){
				JOptionPane.showMessageDialog(null, "O nome já está em uso");
				System.exit(0);
			}
    	    
    	    JOptionPane.showMessageDialog(null, mensagem);
    	    
    	    String strloop = servidor.readLine();
    	    System.out.println(strloop);
    	    int loopadd = Integer.parseInt(strloop);
			System.out.println("Tem " + loopadd + " conectados");
			
			for(int i=0; i<loopadd ; i++){
				String nomeuseradd = servidor.readLine();
				System.out.println("Online " + nomeuseradd);
				listaconectados.add(nomeuseradd);
			}					
		   	
			conectados = new JList();
        	c.add(conectados);
        
			conectados.setListData(listaconectados.toArray());
		
    	  
    		Usuario = new JLabel("Usuário: "+nomeusuario);
    	    Usuario.setBounds(50,5,150,30);
    	    c.add(Usuario);   
    	    
    	    ListaOline = new JLabel("ListaConectados");
    	    ListaOline.setBounds(800,20,150,30);
    	    c.add(ListaOline);
    	   

            //instancia a thread para ip e porta conectados e depois inicia ela
            Thread thread = new Thread(new Auxiliar());
            thread.start();
    	                					
		} catch (IOException e) {
			JOptionPane.showMessageDialog(null, "Não foi possível efetuar a conexão");
			e.printStackTrace();
		} 
		
		
		botaoenviar = new JButton("Enviar");
		botaoenviar.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
			try{
				msg = entrada2.getText();
				saida.println(nomeusuario + " diz : " +msg);
				saida.flush();
				entrada2.setText("");
				entrada2.grabFocus();
			}
			catch(Exception e){
			}
			}
			
		});
			 
		entrada1 = new JTextArea();
		entrada1.setLineWrap(true);
		entrada1.setWrapStyleWord(true);
		
		entrada2 = new JTextArea();
		entrada2.setLineWrap(true);
		entrada2.setWrapStyleWord(true);
		
		
	
	
				
		scrollBar1 = new JScrollPane(entrada1);
		scrollBar1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		scrollBar1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		scrollBar1.setBounds(50,30,700,300);
		entrada1.setEditable(false);
		c.add(scrollBar1);
		
		scrollBar2 = new JScrollPane(entrada2);
		scrollBar2.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		scrollBar2.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		scrollBar2.setBounds(150,350,500,150);
		c.add(scrollBar2);
		
		scrollBar3 = new JScrollPane(conectados);
		scrollBar3.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		scrollBar3.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		scrollBar3.setBounds(800,50,150,200);
		c.add(scrollBar3);
		
		
		
		botaoenviar.setBounds(650,350,100,100);
		c.add(botaoenviar);			   				
		setSize(1000,600);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	

	  public class Auxiliar implements Runnable{

	@Override
	public void run() {

		try{
			
			String mensagem;
			try{
				Thread.sleep(1500);
			}
			catch(Exception e){
				
			}									
			while(true){							

				mensagem = servidor.readLine();
				
				String msg[] = mensagem.split("MPMP@@");
				
				if(msg[0].equals("addListListList")||msg[0].equals("remListListList")){
					if(msg[0].equals("addListListList")){
					boolean confere = true;
					for(int i = 0 ; i < listaconectados.size() ; i ++){
					if(listaconectados.get(i).equals(msg[1])){
						confere = false;
					}
					}
					if(confere==true){
						listaconectados.add(msg[1]);
						entrada1.append("O usuário "+ msg[1] + " entrou \n");
					}
				conectados.setListData(listaconectados.toArray());				
				}
					else{
						listaconectados.remove(msg[1]);
						conectados.setListData(listaconectados.toArray());	
						entrada1.append("O usuário "+msg[1]+" Saiu \n");
					}}
				else{
					entrada1.append(mensagem + "\n");
					entrada1.setCaretPosition(entrada1.getText().length());	
				}																							
				}

		}catch(Exception e){
			JOptionPane.showMessageDialog(null, "Ocorreu algum erro e o programa será encerrado ");
		}
	}}}

1 Resposta

D

Por favor, ninguém sabe responder?? :?:

Criado 10 de novembro de 2011
Ultima resposta 12 de nov. de 2011
Respostas 1
Participantes 1