Olá,
é meu primeiro post no forum, mas aqui deixo uma duvida que não consigo resolver:
Fiz um programa e este funciona perfeitamente com exceção do JOptionpane. Meu programa funciona como um Skype usando a API Gstreamer para linux, mas entre dois computadores apenas. Todo processo funciona bem quando uso System.out.print() mas se eu tentar um JOptionpane, o box aparece assim como seu titulo, mas nenhuma mensagem ou botao aparece. Alem disso, metodos estanciados tbm não funcionam e acaba deixando meu programa funcional mas não como eu queria.
Abaixo, parte do codigo que tenho tido este problema:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.JOptionPane;
import org.gstreamer.State;
public class Interacao {
//Sockets
ServerSocket serverSocket;
Socket conexaoChamada;
int recebendoChamada = 0;
int resposta = 1;
static Execucao_GStreamer criar = new Execucao_GStreamer();
public void Iniciar() throws IOException {
serverSocket = new ServerSocket(5002);
while (recebendoChamada < 6) {
System.out.println("Servidor Esperando Conexão...");
Socket novaConexao = serverSocket.accept();
System.out.println("Conexão Estabelecida!");
// Após receber uma solicitação, criar streams de entrada e saída de dados.
DataInputStream stream_entrada = new DataInputStream(novaConexao.getInputStream());
DataOutputStream stream_saida = new DataOutputStream(novaConexao.getOutputStream());
//receber dados pela nova conexao
recebendoChamada = stream_entrada.readInt();
System.out.println("Valor recebido pelo Server: " + recebendoChamada);
if (recebendoChamada == 1) {
System.out.println("Aceitar ou Rejeitar chamada?");
criar.Rodar(); // nao funciona aqui e JOptionPane também nao
stream_saida.writeInt(recebendoChamada += 1);
System.out.println("Valor Enviado Server dever ser dois e o enviando foi:" + recebendoChamada);
//}
}
if (recebendoChamada == 3) {
System.out.println("Inicializando Pipies do Servidor!");
Execucao_GStreamer.pipeCVideo.setState(State.PLAYING);
Execucao_GStreamer.pipeCVoz.setState(State.PLAYING);
Execucao_GStreamer.pipeSVideo.setState(State.PLAYING);
Execucao_GStreamer.pipeSVoz.setState(State.PLAYING);
//DoisEmUm.frame.setVisible(true);
System.out.println("SERVER ENVIANDO VALOR 4");
stream_saida.writeInt(recebendoChamada += 1);
}
//System.out.println("Fechando entradas e saidas SERVIDOR...");
stream_entrada.close();
stream_saida.close();
novaConexao.close();
if (recebendoChamada == 5) {
System.out.println("Fechando Sockets SERVIDOR...");
//serverSocket.close();
recebendoChamada = 0;
}
}
}
}
JOptionpane ou qualquer metodo de qualquer outra classe não funcionam corretamente a partir de
Socket novaConexao = serverSocket.accept();
qualquer linha acima, tudo funciona corretamente.
Alguem saberia ou teria uma ideia do porque? lembrando que o box do JOptionpane quando chamo aparece, mas a mensagem ou opçoes nao.
Obrigado desde já.