Duvidas MouseListener e frame.show() - NetBeans 6.0

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!

não usa show() usa o setVisible(true);

JFrame meuFrame = new JFrame("Meu Frame"); meuFrame.setVisible(true);

e No Lugar do mouseListener usa o mouseAdapter que voce pode colocar somento os metodos que lhe interessam:

addMouseListener(new MouseAdapter() {
            
            public void mouseClicked(MouseEvent e){
            //seu codigo aqui!
        }});

FLWs espero ter ajudado

Vlw a resposta.

O problema do mouse ta resolvido, funcionou certim, agora o do show() nao =\

mesmo com o formConexao.setVisible(true);

nao adiantou, ele continua executando o frame pai.


public static void main(String[] args) {
        ConexaoCliente formConexao;
        formConexao = new ConexaoCliente();
        Cliente cliente;
        try {
            formConexao.setVisible(true);
            if (formConexao.OK) {
                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);
        }
        
//        FormCliente formCliente = new FormCliente();
//        formCliente.show();
    }

bump!

Não estou entendendo o que voce quer fazer…
explique-se…

flws

Bom, eu tentei me explicar da melhor maneira possivel… nao consigo explicar de forma mais detalhada, mas da uma olhada no codigo que vc vai entender, é bem simples (de entender).

Tipo, me corrija se eu estiver enganado, mas o que vc quer é abrir um form e dar acesso ao usuário somente a ele…

Seria isso?

Tipo um form modal???

isso me fugiu a palavra, é um formModal mesmo.

como faço isso sem usar o JOption ??

Abraco!

Amigo, em vez de usar um frame, já tentou usar um JDialog e setar setModal(true)…???

Com o JDialog o usuário terá acesso somente a ele sobre todas as outras janelas acima, desta maneira ele devera ser fechado para continuar com a execução do programa…

Não sei se estou certo, mas deve ajudar…

Até mais… Poste aew falando se deu certo…