oi, estou fazendo um jogo onde vc manda um valor de um socket no caso desse codigo gostaria que recebesse o valor um e depois desenhasse a bolinha um na cor vermelha mas dah um erro de :
java.lang.NullPointerException
Client.java:151
e akelas linhas mais doidas
poderiam me ajudar
(a classe servidor soh esta mandando 1)
ai vai a classe cliente…
estou usando threads…
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
public class Cliente extends JFrame
{
JPanel painel;
String sorteada="";
Socket conexao;
PrintWriter saida;
// método construtor
public Cliente()
{
setSize(400, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel painel = new JPanel();
painel.setLayout(new BorderLayout());
getContentPane().add(painel);
//pack();//ajusta ao tamanho
setVisible(true);
}
// método para executar o cliente
public void executaCliente()
{
try
{
conexao = new Socket("localhost", 4444);
saida = new PrintWriter(conexao.getOutputStream(), true);
saida.println("@");
ClienteThread t = new ClienteThread(conexao);
t.start();
System.out.println(t.linha);
sorteada=t.linha;
repaint();
} catch (UnknownHostException e) { }
catch (IOException e) { }
}
public void paint(Graphics tela)
{
tela.setColor(Color.blue);
//bola1 5
//bola2 80
//bola3 155
//bola4 230
//bola5 305
tela.fillOval(5, 5, 60, 60);
tela.fillOval(80, 5, 60, 60);
tela.fillOval(155, 5, 60, 60);
tela.fillOval(230, 5, 60, 60);
tela.fillOval(305, 5, 60, 60);
tela.fillOval(5, 80, 60, 60);
tela.fillOval(80, 80, 60, 60);
tela.fillOval(155, 80, 60, 60);
tela.fillOval(230, 80, 60, 60);
tela.fillOval(305, 80, 60, 60);
tela.fillOval(5, 155, 60, 60);
tela.fillOval(80, 155, 60, 60);
tela.fillOval(155, 155, 60, 60);
tela.fillOval(230, 155, 60, 60);
tela.fillOval(305, 155, 60, 60);
tela.fillOval(5, 230, 60, 60);
tela.fillOval(80, 230, 60, 60);
tela.fillOval(155, 230, 60, 60);
tela.fillOval(230, 230, 60, 60);
tela.fillOval(305, 230, 60, 60);
tela.fillOval(5, 305, 60, 60);
tela.fillOval(80, 305, 60, 60);
tela.fillOval(155, 305, 60, 60);
tela.fillOval(230, 305, 60, 60);
tela.fillOval(305, 305, 60, 60);
tela.fillOval(5, 380, 60, 60);
tela.fillOval(80, 380, 60, 60);
tela.fillOval(155, 380, 60, 60);
tela.fillOval(230, 380, 60, 60);
tela.fillOval(305, 380, 60, 60);
tela.setColor(Color.black);
Font f1 = new Font("TimesRoman", Font.BOLD, 40);
tela.setFont(f1);
//coluna + 75
tela.drawString("1", 25, 45);
tela.drawString("2", 100, 45);
tela.drawString("3", 175, 45);
tela.drawString("4", 250, 45);
tela.drawString("5", 325, 45);
//linha +75
tela.drawString("6", 25, 120);
tela.drawString("7", 100, 120);
tela.drawString("8", 175, 120);
tela.drawString("9", 250, 120);
tela.drawString("10", 315, 120);
tela.drawString("11", 15, 195);
tela.drawString("12", 90, 195);
tela.drawString("13", 165, 195);
tela.drawString("14", 240, 195);
tela.drawString("15", 315, 195);
tela.drawString("16", 15, 270);
tela.drawString("17", 90, 270);
tela.drawString("18", 165, 270);
tela.drawString("19", 240, 270);
tela.drawString("20", 315, 270);
tela.drawString("21", 15, 345);
tela.drawString("22", 90, 345);
tela.drawString("23", 165, 345);
tela.drawString("24", 240, 345);
tela.drawString("25", 315, 345);
tela.drawString("26", 15, 420);
tela.drawString("27", 90, 420);
tela.drawString("28", 165, 420);
tela.drawString("29", 240, 420);
tela.drawString("30", 315, 420);
if (sorteada.equals("1"))
{
tela.setColor(Color.red);
tela.fillOval(5, 5, 60, 60);
tela.drawString("1", 25, 45);
}
}
// método principal
public static void main(String[] args)
{
Cliente janela = new Cliente();
janela.setTitle("Cliente");
janela.executaCliente();
}
}
import java.awt.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
public class ClienteThread extends Thread
{
Socket conexao;
BufferedReader entrada;
String linha;
public ClienteThread()
{
}
// método construtor
public ClienteThread(Socket s)
{
conexao = s;
try
{
entrada = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
} catch (IOException e) { }
}
// método executado pela thread
public void run()
{
try
{
while (true)
{
linha = entrada.readLine();
System.out.println(linha);
}
} catch (IOException e) { }
}
}
ficaria feliz com a ajuda de vcs.!