Bom dia…
Estou com uma duvida, eu preciso fazer um jogo chamado Dalmut e mais ou menos parecido com Pife, gerenciando 6 conexoes e com interface grafica, mas estou com muitas duvidas em relacao a interface, primeiro foi como adicionar as imagens em tempo de execucao, mas dei uma procurada e aprendi, agora esses outros dois eu nao consigo achar nada a respeito.
Primeiro como faço em java para que meu frame principal aguarde o fechamento de um auxiliar para depois continuar? (coisa estranha isso, ele cria uma thread pro novo frame, sem meu consentimento, e continua executando meu frame principal e o outro ao mesmo tempo) isso pra min isso é gambiarra… e das braba. o problema é que preciso do ip e da porta que o cara vai se conectar ao servidor, mas os dados ele entra nesse form auxiliar, dai preciso ver se ele cancelou (ou seja nao quis se conectar) ou clicou em conectar, mas para isso preciso saber se o form ja esta fechado, se fosse em C# isso nao aconteceria, ja que ao abrir um novo form o mesmo recebe a atencao do processador e nao o pai.
public static void main(String[] args) {
ConexaoCliente formConexao;
formConexao = new ConexaoCliente();
Cliente cliente;
try {
formConexao.show(); // aqui ele abre o outro form
if (formConexao.OK) { // mas continua a execucao deste, dai essa condicao da false por default
try {
cliente = new Cliente( formConexao.ip, Integer.parseInt(formConexao.porta), formConexao.jogador);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Impossivel Conectar");
e.printStackTrace();
}
} else {
System.exit(0);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Fechando Aplicativo - Motivo: " + e.toString());
System.exit(0);
}
[size=18]Existe algum método parecido com show() mas que prenda a atencao do programa para si ?[/size]
A outra duvida é sobre a criação de imagens, eu fiz um for basico apenas para teste da criacao de 13 imagens e a posicao destas no frame, e a criacao de um evento para cada uma, que seria o MouseClicked, quando ele clicar na carta preciso saber algo que identifique a carta (esse aqui eu nao sei como pegar) existe algum campo ‘Tag’ como em C# ? a merce do programador ? esse campo em C# so serve pra colocar informacoes adicionais, nesse caso eu colocaria o nome da carta.
E sobre a criação de Eventos destas mesmas imagens, eu fiz um negocio aqui, mas ficou meio gambirrado por que o compilador diz que eu preciso implementar todas as funcoes do metodo MouseListener (oO), da uma olhada.
public void criaCartas() {
int x = 325;
getContentPane().setLayout(null);
for (int i = 0; i < 13; i++, x += 35) {
mao[i] = new JLabel();
mao[i].setIcon(new javax.swing.ImageIcon(getClass().getResource(
"/Cartas Imagens/" + Integer.toString(i+1) + ".jpg")));
getContentPane().add(mao[i]);
mao[i].setBounds(x, 305, 30, 180);
// mao[i].setTag("0,"+i.toString()); //esta seria minha tag
mao[i].setVisible(true);
mao[i].addMouseListener(new MouseListener()
{
public void mouseClicked(MouseEvent e) {
JOptionPane.showMessageDialog(null, "Clicou: " + e.paramString());
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
});
}
[size=18] Como faço pra tirar esse metodos sobressalientes do codigo ? preciso mesmo implementar todos eles apenas para criar o clicked ?? [/size]
E Abusando mais um pouco da boa vontade do povo, como faço pra desabilitar o “EU FIZ, EU MEXO” do netBeans 6.0 ?? o que ele cria pela interface é impossivel de mexer, mas eu precisava so pra arrumar a posicao das cartas no form inicial…
Abraço!