Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - nerckos

#1
Teniendo una tabla de equivalencias entre pseudocódigo y codigo en java.
#2
Java / Re: AYUDA (CONTROL DE TIENDA)
30 Mayo 2010, 20:14 PM
Porque instancias objetos que no usas?
#3
Java / Re: JFrame
8 Mayo 2010, 15:58 PM
Ya lo he solucionado: el objeto juego, lo e instanciado en el constructor de entrada, y e metido el .dispose() y el .iniciarPantallaJuego() en un thred. El problema no estaba en la lectura del socket (por seguridad e decidido despues de leer cerrarlo), sino en la instancia al objeto PantallaJuego. El problema creo que era porque estaba dibujando un frame en un listener, por lo tanto como siempre esta escuchando y nunca para hasta el fin de la ejecucion del programa, no lo dibujaba correctamente, y se quedaba colgado.

Muchisimas gracis por tu ayuda.

#4
Java / Re: JFrame
8 Mayo 2010, 14:53 PM
cuando le hago un debug, auxx si que esta relleno.
#5
Java / Re: JFrame
8 Mayo 2010, 14:07 PM
Hice la modificacion que me dijiste, pero sigue sin dibujarme la ventana, por eso le añadí un hilo cuando instancia la clase para crear el nuevo frame, pero sigue sin dibujarla.

    private void clickEntrar(MouseEvent e){

        try{
            if(usuario.getText().length()==0 || contrasenya.getPassword().length==0 ){

                JOptionPane.showMessageDialog(entrada, "Error usuario y/o contrasenya vacios.", "Error", JOptionPane.ERROR_MESSAGE);

            }else{

                //entrante=new DataInputStream(conexion.getInputStream());
                //saliente=new DataOutputStream(conexion.getOutputStream());

                saliente.writeUTF("01 ");
                String usu="02 "+usuario.getText();
                char[] aux=contrasenya.getPassword();
                String auxPass=new String(aux);
                auxPass="03 "+auxPass.substring(0);
                saliente.writeUTF(usu);
                saliente.writeUTF(auxPass);
                saliente.flush();

                Runnable miRunnable = new Runnable(){
                    public void run(){
                        try{
                                auxx=entrante.readUTF();

                            }
                            catch (Exception e)
                            {
                               e.printStackTrace();
                            }
                    }
                };
                Thread hilo = new Thread (miRunnable);
                hilo.start();

                if(auxx.equals("07 OK")){
                    Runnable miHilo=new Runnable(){
                        public void run(){
                            try{
                            juego=new PantallaJuego(saliente,entrante);
                            entrada.dispose();
                            juego.iniciarPantallaJuego();   
                            }catch(Exception e){}
                        }
                    };
                    Thread hiloo=new Thread(miHilo);
                    hiloo.start();

                }else{
                    JOptionPane.showMessageDialog(entrada,
                            "Usuario y/o contrasenya incorrectos", "Error", JOptionPane.ERROR_MESSAGE);
                }

            }
        }catch(Exception err){
            System.err.println(err.toString());
        }
    }
#6
Java / Re: JFrame
8 Mayo 2010, 11:08 AM
Clase Entrada(la del logueo)


private void clickEntrar(MouseEvent e){

        try{
            if(usuario.getText().length()==0 || contrasenya.getPassword().length==0 ){

                JOptionPane.showMessageDialog(entrada, "Error usuario y/o contrasenya vacios.", "Error", JOptionPane.ERROR_MESSAGE);

            }else{

                //entrante=new DataInputStream(conexion.getInputStream());
                //saliente=new DataOutputStream(conexion.getOutputStream());

                saliente.writeUTF("01 ");
                String usu="02 "+usuario.getText();
                char[] aux=contrasenya.getPassword();
                String auxPass=new String(aux);
                auxPass="03 "+auxPass.substring(0);
                saliente.writeUTF(usu);
                saliente.writeUTF(auxPass);
                saliente.flush();

                if((entrante.readUTF()).equals("07 OK")){
                    juego=new PantallaJuego(saliente,entrante);//Instacio el objeto            //que contiene un nuevo JFrame
                    entrada.dispose();//Aqui destruyo el objeto entrada(ventana de logueo)
                    juego.iniciarPantallaJuego();
                }else{
                    JOptionPane.showMessageDialog(entrada,
                            "Usuario y/o contrasenya incorrectos", "Error", JOptionPane.ERROR_MESSAGE);
                }

            }
        }catch(Exception err){
            System.err.println(err.toString());
        }
    }


Clase PantallaJuego(el siguiente JFrame)

//Le doy unas propiedades al JFrame
        this.entrada=entrada;
        this.salida=salida;
        JFrame.setDefaultLookAndFeelDecorated(true);
        pantallaJuego = new JFrame();
        pantallaJuego.setTitle("Sala de Juego");
        pantallaJuego.setLocationRelativeTo(null);
        pantallaJuego.setVisible(false);
        pantallaJuego.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
        pantallaJuego.getContentPane().setLayout(new GridBagLayout());
        pantallaJuego.getContentPane().setBackground(Color.WHITE);
        pantallaJuego.setSize(600,600);
        pantallaJuego.setResizable(false);

public void iniciarPantallaJuego(){
       
        pantallaJuego.setVisible(true);

        try{
            while(!finPartida){
                if(juegoIniciado){
                    truc.setEnabled(true);
                    if(ronda==1){
                        envid.setEnabled(true);
                        reparteCartas();
                    }else{
                        envid.setEnabled(false);
                    }
                }else{
                    envid.setEnabled(false);
                }
                refrescarJugadores();
                refrescarChat();
                refrescarJuego();
            }
        }catch(Exception e){
            System.out.println(e.toString());
        }
    }


#7
Java / Re: JFrame
8 Mayo 2010, 01:31 AM
Uso y programo en win, y todas las pruebas las hago en el mismo pc que programo. Uso el paquete swing para añadir los componentes(JList, JTextArea y un JPanel), y solo e usado un setBackgroung() para anyadirle color al JFrame y al JPanel.

Pero esque me da la impresion de que no crea bien el objeto, porque cuando lo creo en un proyecto nuevo (uso netbeans) y lo ejecuto funciona a la perfeccion, por eso creo que tiene algo que ver con el JFrame del logueo (desde el que creo e instancio el JFrame que no funciona).

EDITO: las clases estan en el mismo paquete, por lo tanto no hay problemas de visibilidad.
#8
Java / Re: Busco metodo
7 Mayo 2010, 20:27 PM
Ajam, tenia entendido que en java no se puede trabajar con punteros pero en fin....
#9
Java / Re: Busco metodo
7 Mayo 2010, 20:24 PM
Prueba con el metodo que trae la propia clase String:

.substring();
#10
Java / JFrame
7 Mayo 2010, 20:23 PM
Buenas tardes a todos, me ha surgido un problemilla esta tarde con un JFrame, ya utilicé el buscar y no v nada al respecto. Mi duda es la siguiente:

Utilizo un JFrame para capturar un usuario y una contrasenya, que se conectan a un servidor a traves de un socket a una base de datos. El problema viene cuando el usuario ya es correcto, en ese momento llamo a la clase que muestra la siguiente pantalla(otro JFrame), pero me aparece en negro y con un tamanyo de 0x0 "petado".

Cual podria ser el problema?(Cierro la ventana del logueo con .dispose() y creo la nueva clase que contiene el nuevo JFrame).

EDITO: si aislo la clase, y la ejecuto por separado, funciona perfectamente.