Foro Oficial de Java

bencho_85

Lanero Regular
27 Nov 2006
19
hola, amigos tengo una duda con java y no he podido corregirlo,
lo que pasa es que estoy impriendo la informacion que visualizo en una JTable, usando el metodo print, que viene dentro de esa clase, el problema es al colocar el encabezado no he podido colocarle salto de linea ni nada ya he probado con \n\r y nada, hay le muestro el codigo que estoy usando para tal fin, y agredeceera que alguien me pueda ayudar con eso

Código:
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet() ;
        
        MediaPrintableArea mpa =
                new MediaPrintableArea(25.0f,15.0f,186.0f,249.0f,MediaPrintableArea.MM);
        
        pras.add(mpa);
        //pras.add(jbn);
        pras.add(MediaSizeName.NA_LETTER);
        pras.add(Chromaticity.MONOCHROME);
        pras.add(OrientationRequested.PORTRAIT);
        
        
        String fechaFormat = fechaAct.obtenerFechaCompleta();
       
        
        MessageFormat head =
                new MessageFormat("Registro\n\rPlanta Telefonica");
        MessageFormat foot =
                new MessageFormat("Fecha de Impresión: "+
                fechaFormat+" - Página {0}");
        
        try {
            jTResultadoB.print(JTable.PrintMode.FIT_WIDTH,head,foot,true,pras,true);
        } catch(PrinterException e) {
            e.printStackTrace();
        }
no has intentado hacer como una especie de ciclo por cada fila qe obtengas de la tabla?

Yo trabajo con JTable pero de otra manera.
 

bencho_85

Lanero Regular
27 Nov 2006
19
hola amigos tengo una inquietud:

Resulta que tengo un JTable, en el cual quiero que al momento de listar las filas con sus datos queden alguna coloreadas o resaltadas de acuerdo a algun critero.

En otras palabras necesito la parte del codigo para porder resaltar la fila(colorear el fondo de las celdas).

Yo trabajo el JTable en combinacion con el TableModel

Mis agradecimientos al que pueda ayudarme
 

Silvanictus

Lanero Regular
3 Ago 2008
1
ayuda urgente

tengo que entregar este proyecto el lunes y no logro quitarle unos bugs, agradezco toda la ayuda
Código:
import javax.swing.*;
import java.io.*;

public class CuatroEnRaya{
    //Aqui inicializo todas las variables como globales por facilidad para trabajar entre metodos
    //Gracias a esto puedo utilizar los metodos como void
    BufferedReader in= new BufferedReader(new InputStreamReader(System.in));
    String salir="";
    int salirint=0;
    String tamaño="";
    int n=0;
    String nn="";
    boolean valorn=true;
    String[][] grilla;
    String Jugador1="";
    String Jugador2="";
    String bienstr="";
    int bien=0;
    boolean Ganar=false;
    int turno=0;
    String ganador="";
    boolean Empate=false;
    int JugTurn=0;
    String numcolumna="";
    boolean JugadaValida=false;
    String Jugadastr="";
    int Jugada=0;
    boolean JugadaValida2=false;
    int CasillaValida=0;
    int CasillaValida2=0;
    int fila=0;
    int valorGanar=0;
    int ValorEmpate=0;

public void MenuJuego(){

        //Este metodo le pregunta al usuario si desea jugar o abandonar el juego
        try{
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

            //La clase anterior hace que java utilice el formato de windows para las ventanas de interfaz grafica

            salir=JOptionPane.showInputDialog(null,"Bienvenido al juego Cuatro en Raya\nSi desea jugar digite 1, para salir presione cualquier otra tecla");

            //Conversion de el numero introducido por el ususario a entero

            salirint=Integer.parseInt(salir);
            if(salirint==1){
                NuevoArreglo();

                }
                else{
                    JOptionPane.showMessageDialog(null,"El programa ha terminado\nGracias por utilizar el programa","Adios",JOptionPane.INFORMATION_MESSAGE);
                }
                    }catch (Exception e){
                    }

                }



public void NuevoArreglo(){

        //Este metodo solicita al usuario el tamaño y lo asigna al arreglo
        //El do-while es para asegurar que el valor de n es un numero mayor o igual a 4
        //Tambien en este metodo se llama al metodo NumFilaYColumna

            do{
            valorn=true;
            nn=JOptionPane.showInputDialog(null,"Por favor introduzca la cantidad de casillas de lado deseadas\n(utilice solamente numeros mayores a cero, no utilice letras)","Cantidad de casillas de lado");

            try{

                //Conversion de el numero introducido por el ususario a entero

                n=Integer.parseInt(nn);
                n=n+1;
                }catch (Exception e){
                    JOptionPane.showMessageDialog(null,"\n\nEl valor no es valido, introduzca uno valido\n\n","Valor incorrecto",JOptionPane.WARNING_MESSAGE);
                    valorn=false;
                }

            if((n<4)||(n>9)){
                JOptionPane.showMessageDialog(null,"\n\nEl valor no es valido, introduzca uno valido\n\n","Valor incorrecto",JOptionPane.WARNING_MESSAGE);
                valorn=false;
                }
            }while(valorn!=true);

            //Inicializo el arreglo

            grilla= new String[n][n];
            NumFilaYColumna();

    }

public void NumFilaYColumna(){
//Este metodo pone los numeros de fila y columna en el arreglo
//Tambien coloca un asterisco como valor inical de cada casilla

for(int i=0;i<n;i++){
    if(i==0){
        for(int j=0;j<n;j++){
            numcolumna= Integer.toString(j);
            grilla[i][j]=numcolumna;
            grilla[j][i]=numcolumna;
        }
        }else{
            for(int j=0;j<n;j++){
                if(j!=0){
                grilla[i][j]="*";
            }
            }
        }
    }
NuevoJuego();
}


public void NuevoJuego(){
    //En este metodo se toman los nombres de los jugadores
    //Tambien se felicita al ganador y se llama al metodo MenuJuego
    //Ademas se dice de que jugador es el turno y se llama al metodo turno
    bien=0;
    while(bien!=1){
        try{
            Jugador1=JOptionPane.showInputDialog(null,"Jugador 1 juega con X, favor introducir su nombre","Jugador1");
            Jugador2=JOptionPane.showInputDialog(null,"Jugador 2 juega con O, favor introducir su nombre","Jugador2");
            bienstr=JOptionPane.showInputDialog(null,"Jugador 1: "+Jugador1+"\n"+"Jugador 2: "+Jugador2+"\n"+"Si es correcto digite 1, sino presione cualquier otra tecla");
            bien=Integer.parseInt(bienstr);
            while((Ganar!=true)&&(bien==1)){

                turno++;
                if(turno%2==1){
                    JugadaValida=false;
                    JOptionPane.showMessageDialog(null,""+Jugador1+" Es su turno","Su turno",JOptionPane.INFORMATION_MESSAGE);
                    JugTurn=1;
                    ganador=Jugador1;
                    Turno();
                }else{

                    JugadaValida2=false;
                    JOptionPane.showMessageDialog(null,""+Jugador2+" Es su turno","Su turno",JOptionPane.INFORMATION_MESSAGE);
                    JugTurn=0;
                    ganador=Jugador2;
                    Turno();
                    }
                Victoria();
            }


            if(Ganar==true){

                JOptionPane.showMessageDialog(null,""+ganador+"Usted ha ganado","Felicidades",JOptionPane.INFORMATION_MESSAGE);
                Ganar=false;
                MenuJuego();
            }else{
                if(Empate==true){
                    JOptionPane.showMessageDialog(null,"La partida ha terminado en empate","Empate",JOptionPane.INFORMATION_MESSAGE);
                    Empate=false;
                    MenuJuego();
                }
            }
        }catch(Exception e){
        }
    }
}


public void Turno(){
    //Este metodo muestra el area de juego y pideal usuario que realice su movida, luego comprueba si esta es valida
    //si no lo es le pide que la repita, si lo es coloca la jugada en el arreglo y llama al metodo Victoria
JugadaValida=false;
JugadaValida2=false;
    for(int i=0;i<n;i++){
        for(int k=0;k<1;k++){
            for(int h=0;h<n;h++){
                System.out.print("îîîî");
            }

        System.out.println(" ");
        for(int j=0;j<n;j++){
            System.out.print(" "+grilla[i][j]+" ³");
        }
    System.out.println(" ");
}
}
//Jugada jugador1 y comprobacion de validez de movida

    if(JugTurn==1){
        while(JugadaValida!=true){
            try{
            Jugadastr=JOptionPane.showInputDialog(null,""+Jugador1+" Favor introducir el numero de columna en el que desea jugar");
            Jugada=Integer.parseInt(Jugadastr);
            //Comprobar que la jugada no sale del rango de columnas

            if(((Jugada>0)&&(Jugada<n))){

                    //Comprobar que la columna no este llena
                    if(grilla[1][Jugada].equals("*")){

                        //Este for coloca la jugada en la casilla de la ultima fila vacia de la columna seleccionada
                                        CasillaValida=0;
                                        for(int a=1;a<n;a++){

                                            if(grilla[a][Jugada].equals("*")){

                                                CasillaValida++;

                                                if(CasillaValida==(n-1)){
                                                    grilla[n-1][Jugada]="X";
                                                    JugadaValida=true;

                                                }

                                            }else{

                                                grilla[a-1][Jugada]="X";
                                                fila=a-1;
                                                JugadaValida=true;
                                                break;

                                                }
                                        }
                    }
                }else{
                        JugadaValida=false;
                        Turno();
                    }



}catch(Exception e){

}

}
//Jugada jugador2 y comprobacion de validez de movida

}else{

    while(JugadaValida2!=true){
        Jugadastr=JOptionPane.showInputDialog(null,""+Jugador2+" Favor introducir el numero de columna en el que desea jugar");
        Jugada=Integer.parseInt(Jugadastr);
        //Comprobar que la jugada no sale del rango de columnas
        if((Jugada>0)&&(Jugada<n)){

                //Comprobar que la columna no este llena
                if(grilla[1][Jugada].equals("*")){


                    //Este for coloca la jugada en la casilla de la ultima fila vacia de la columna seleccionada
                    CasillaValida2=0;
                    for(int a=1;a<n;a++){
                        if(grilla[a][Jugada].equals("*")){
                            CasillaValida2++;
                            if(CasillaValida2==(n-1)){
                                grilla[n-1][Jugada]="O";
                                JugadaValida2=true;

                                }
                                }else{
                                    grilla[a-1][Jugada]="O";
                                    fila=a-1;
                                    JugadaValida2=true;
                                    break;

                                }
                            }






                }

            }else{
            JugadaValida2=false;
            Turno();
        }





}
}
}


public void Victoria(){
    //Este metodo evalua si el jugador gano
    //Los primeros 8 if evaluan si hay un cuatro en raya
    //El siguiente evalua si el tablero esta lleno y no ha habido un cuatro en raya para declararlo empate

        if(fila+3<n){
            valorGanar=0;
            System.out.println("1");
            for(int v=1;v<=4;v++){
                if(grilla[fila][Jugada].equals(grilla[fila+v][Jugada])){
                    valorGanar++;
                    System.out.println("******************");
                    if(valorGanar==3){
                        Ganar=true;
                        System.out.println("2");
                    }else{
                        Turno();
            }
                }
                }
        }else{
            if(fila-3>0){
                valorGanar=0;
                System.out.println("3");
                for(int v=1;v<=4;v++){
                    if(grilla[fila][Jugada].equals(grilla[fila-v][Jugada])){
                        valorGanar++;
                        if(valorGanar==3){
                            Ganar=true;
                            System.out.println("4");
                        }
                    }
                }
            }else{
                System.out.println("5");
                if(Jugada+3<n){
                    valorGanar=0;
                    for(int v=1;v<=4;v++){
                        if(grilla[fila][Jugada].equals(grilla[fila][Jugada+v])){
                            valorGanar++;
                            if(valorGanar==3){
                                Ganar=true;
                                System.out.println("6");
                            }
                        }
                    }
                }else{
                    System.out.println("7");
                    if(Jugada-3>0){
                        valorGanar=0;
                        for(int v=1;v<=4;v++){
                            if(grilla[fila][Jugada].equals(grilla[fila][Jugada-v])){
                                valorGanar++;
                                if(valorGanar==3){
                                    Ganar=true;
                                    System.out.println("8");
                                }
                            }
                        }
                    }else{
                        System.out.println("9");
                        if((fila+3<n)&&(Jugada+3<n)){
                            valorGanar=0;
                            for(int v=1;v<=4;v++){
                                if(grilla[fila][Jugada].equals(grilla[fila+v][Jugada+v])){
                                    valorGanar++;
                                    if(valorGanar==3){
                                        Ganar=true;
                                        System.out.println("10");
                                    }
                                }
                            }
                        }else{
                            System.out.println("11");
                            if((fila+3<n)&&(Jugada-3<n)){
                                valorGanar=0;
                                for(int v=1;v<=4;v++){
                                    if(grilla[fila][Jugada].equals(grilla[fila+v][Jugada-v])){
                                        valorGanar++;
                                        if(valorGanar==3){
                                            Ganar=true;
                                            System.out.println("12");
                                        }
                                    }
                                }
                            }else{

                                System.out.println("13");
                                if((fila-3<n)&&(Jugada+3<n)){
                                    valorGanar=0;
                                    for(int v=1;v<=4;v++){
                                        if(grilla[fila][Jugada].equals(grilla[fila-v][Jugada+v])){
                                            valorGanar++;
                                            if(valorGanar==3){
                                                Ganar=true;
                                                System.out.println("14");
                                            }
                                        }
                                    }
                                }else{
                                    System.out.println("15");
                                    if((fila-3<n)&&(Jugada-3<n)){
                                        valorGanar=0;
                                        for(int v=1;v<=4;v++){
                                            if(grilla[fila][Jugada].equals(grilla[fila-v][Jugada-v])){
                                                valorGanar++;
                                                if(valorGanar==3){
                                                    Ganar=true;
                                                    System.out.println("16");
                                                }
                                            }
                                        }
                                    }else{
                                        System.out.println("17");
                                        if(!(grilla[1][1].equals("*"))){
                                            valorGanar=0;
                                            for(int v=2;v<n;v++){
                                                if(!(grilla[1][v].equals("*"))){
                                                    ValorEmpate++;
                                                    if(ValorEmpate==n-2){
                                                        Empate=true;
                                                        System.out.println("18");
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

}



public static void main(String[]args){
    CuatroEnRaya prueba = new CuatroEnRaya();
    prueba.MenuJuego();
}
}
 

[sC+].B@rt.Oc3

Lanero Reconocido
13 Abr 2007
4,192
tengo que entregar este proyecto el lunes y no logro quitarle unos bugs, agradezco toda la ayuda
Código:
import javax.swing.*;
import java.io.*;
 
public class CuatroEnRaya{
    //Aqui inicializo todas las variables como globales por facilidad para trabajar entre metodos
    //Gracias a esto puedo utilizar los metodos como void
    BufferedReader in= new BufferedReader(new InputStreamReader(System.in));
    String salir="";
    int salirint=0;
    String tamaño="";
    int n=0;
    String nn="";
    boolean valorn=true;
    String[][] grilla;
    String Jugador1="";
    String Jugador2="";
    String bienstr="";
    int bien=0;
    boolean Ganar=false;
    int turno=0;
    String ganador="";
    boolean Empate=false;
    int JugTurn=0;
    String numcolumna="";
    boolean JugadaValida=false;
    String Jugadastr="";
    int Jugada=0;
    boolean JugadaValida2=false;
    int CasillaValida=0;
    int CasillaValida2=0;
    int fila=0;
    int valorGanar=0;
    int ValorEmpate=0;
 
public void MenuJuego(){
 
        //Este metodo le pregunta al usuario si desea jugar o abandonar el juego
        try{
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
 
            //La clase anterior hace que java utilice el formato de windows para las ventanas de interfaz grafica
 
            salir=JOptionPane.showInputDialog(null,"Bienvenido al juego Cuatro en Raya\nSi desea jugar digite 1, para salir presione cualquier otra tecla");
 
            //Conversion de el numero introducido por el ususario a entero
 
            salirint=Integer.parseInt(salir);
            if(salirint==1){
                NuevoArreglo();
 
                }
                else{
                    JOptionPane.showMessageDialog(null,"El programa ha terminado\nGracias por utilizar el programa","Adios",JOptionPane.INFORMATION_MESSAGE);
                }
                    }catch (Exception e){
                    }
 
                }
 
 
 
public void NuevoArreglo(){
 
        //Este metodo solicita al usuario el tamaño y lo asigna al arreglo
        //El do-while es para asegurar que el valor de n es un numero mayor o igual a 4
        //Tambien en este metodo se llama al metodo NumFilaYColumna
 
            do{
            valorn=true;
            nn=JOptionPane.showInputDialog(null,"Por favor introduzca la cantidad de casillas de lado deseadas\n(utilice solamente numeros mayores a cero, no utilice letras)","Cantidad de casillas de lado");
 
            try{
 
                //Conversion de el numero introducido por el ususario a entero
 
                n=Integer.parseInt(nn);
                n=n+1;
                }catch (Exception e){
                    JOptionPane.showMessageDialog(null,"\n\nEl valor no es valido, introduzca uno valido\n\n","Valor incorrecto",JOptionPane.WARNING_MESSAGE);
                    valorn=false;
                }
 
            if((n<4)||(n>9)){
                JOptionPane.showMessageDialog(null,"\n\nEl valor no es valido, introduzca uno valido\n\n","Valor incorrecto",JOptionPane.WARNING_MESSAGE);
                valorn=false;
                }
            }while(valorn!=true);
 
            //Inicializo el arreglo
 
            grilla= new String[n][n];
            NumFilaYColumna();
 
    }
 
public void NumFilaYColumna(){
//Este metodo pone los numeros de fila y columna en el arreglo
//Tambien coloca un asterisco como valor inical de cada casilla
 
for(int i=0;i<n;i++){
    if(i==0){
        for(int j=0;j<n;j++){
            numcolumna= Integer.toString(j);
            grilla[i][j]=numcolumna;
            grilla[j][i]=numcolumna;
        }
        }else{
            for(int j=0;j<n;j++){
                if(j!=0){
                grilla[i][j]="*";
            }
            }
        }
    }
NuevoJuego();
}
 
 
public void NuevoJuego(){
    //En este metodo se toman los nombres de los jugadores
    //Tambien se felicita al ganador y se llama al metodo MenuJuego
    //Ademas se dice de que jugador es el turno y se llama al metodo turno
    bien=0;
    while(bien!=1){
        try{
            Jugador1=JOptionPane.showInputDialog(null,"Jugador 1 juega con X, favor introducir su nombre","Jugador1");
            Jugador2=JOptionPane.showInputDialog(null,"Jugador 2 juega con O, favor introducir su nombre","Jugador2");
            bienstr=JOptionPane.showInputDialog(null,"Jugador 1: "+Jugador1+"\n"+"Jugador 2: "+Jugador2+"\n"+"Si es correcto digite 1, sino presione cualquier otra tecla");
            bien=Integer.parseInt(bienstr);
            while((Ganar!=true)&&(bien==1)){
 
                turno++;
                if(turno%2==1){
                    JugadaValida=false;
                    JOptionPane.showMessageDialog(null,""+Jugador1+" Es su turno","Su turno",JOptionPane.INFORMATION_MESSAGE);
                    JugTurn=1;
                    ganador=Jugador1;
                    Turno();
                }else{
 
                    JugadaValida2=false;
                    JOptionPane.showMessageDialog(null,""+Jugador2+" Es su turno","Su turno",JOptionPane.INFORMATION_MESSAGE);
                    JugTurn=0;
                    ganador=Jugador2;
                    Turno();
                    }
                Victoria();
            }
 
 
            if(Ganar==true){
 
                JOptionPane.showMessageDialog(null,""+ganador+"Usted ha ganado","Felicidades",JOptionPane.INFORMATION_MESSAGE);
                Ganar=false;
                MenuJuego();
            }else{
                if(Empate==true){
                    JOptionPane.showMessageDialog(null,"La partida ha terminado en empate","Empate",JOptionPane.INFORMATION_MESSAGE);
                    Empate=false;
                    MenuJuego();
                }
            }
        }catch(Exception e){
        }
    }
}
 
 
public void Turno(){
    //Este metodo muestra el area de juego y pideal usuario que realice su movida, luego comprueba si esta es valida
    //si no lo es le pide que la repita, si lo es coloca la jugada en el arreglo y llama al metodo Victoria
JugadaValida=false;
JugadaValida2=false;
    for(int i=0;i<n;i++){
        for(int k=0;k<1;k++){
            for(int h=0;h<n;h++){
                System.out.print("îîîî");
            }
 
        System.out.println(" ");
        for(int j=0;j<n;j++){
            System.out.print(" "+grilla[i][j]+" ³");
        }
    System.out.println(" ");
}
}
//Jugada jugador1 y comprobacion de validez de movida
 
    if(JugTurn==1){
        while(JugadaValida!=true){
            try{
            Jugadastr=JOptionPane.showInputDialog(null,""+Jugador1+" Favor introducir el numero de columna en el que desea jugar");
            Jugada=Integer.parseInt(Jugadastr);
            //Comprobar que la jugada no sale del rango de columnas
 
            if(((Jugada>0)&&(Jugada<n))){
 
                    //Comprobar que la columna no este llena
                    if(grilla[1][Jugada].equals("*")){
 
                        //Este for coloca la jugada en la casilla de la ultima fila vacia de la columna seleccionada
                                        CasillaValida=0;
                                        for(int a=1;a<n;a++){
 
                                            if(grilla[a][Jugada].equals("*")){
 
                                                CasillaValida++;
 
                                                if(CasillaValida==(n-1)){
                                                    grilla[n-1][Jugada]="X";
                                                    JugadaValida=true;
 
                                                }
 
                                            }else{
 
                                                grilla[a-1][Jugada]="X";
                                                fila=a-1;
                                                JugadaValida=true;
                                                break;
 
                                                }
                                        }
                    }
                }else{
                        JugadaValida=false;
                        Turno();
                    }
 
 
 
}catch(Exception e){
 
}
 
}
//Jugada jugador2 y comprobacion de validez de movida
 
}else{
 
    while(JugadaValida2!=true){
        Jugadastr=JOptionPane.showInputDialog(null,""+Jugador2+" Favor introducir el numero de columna en el que desea jugar");
        Jugada=Integer.parseInt(Jugadastr);
        //Comprobar que la jugada no sale del rango de columnas
        if((Jugada>0)&&(Jugada<n)){
 
                //Comprobar que la columna no este llena
                if(grilla[1][Jugada].equals("*")){
 
 
                    //Este for coloca la jugada en la casilla de la ultima fila vacia de la columna seleccionada
                    CasillaValida2=0;
                    for(int a=1;a<n;a++){
                        if(grilla[a][Jugada].equals("*")){
                            CasillaValida2++;
                            if(CasillaValida2==(n-1)){
                                grilla[n-1][Jugada]="O";
                                JugadaValida2=true;
 
                                }
                                }else{
                                    grilla[a-1][Jugada]="O";
                                    fila=a-1;
                                    JugadaValida2=true;
                                    break;
 
                                }
                            }
 
 
 
 
 
 
                }
 
            }else{
            JugadaValida2=false;
            Turno();
        }
 
 
 
 
 
}
}
}
 
 
public void Victoria(){
    //Este metodo evalua si el jugador gano
    //Los primeros 8 if evaluan si hay un cuatro en raya
    //El siguiente evalua si el tablero esta lleno y no ha habido un cuatro en raya para declararlo empate
 
        if(fila+3<n){
            valorGanar=0;
            System.out.println("1");
            for(int v=1;v<=4;v++){
                if(grilla[fila][Jugada].equals(grilla[fila+v][Jugada])){
                    valorGanar++;
                    System.out.println("******************");
                    if(valorGanar==3){
                        Ganar=true;
                        System.out.println("2");
                    }else{
                        Turno();
            }
                }
                }
        }else{
            if(fila-3>0){
                valorGanar=0;
                System.out.println("3");
                for(int v=1;v<=4;v++){
                    if(grilla[fila][Jugada].equals(grilla[fila-v][Jugada])){
                        valorGanar++;
                        if(valorGanar==3){
                            Ganar=true;
                            System.out.println("4");
                        }
                    }
                }
            }else{
                System.out.println("5");
                if(Jugada+3<n){
                    valorGanar=0;
                    for(int v=1;v<=4;v++){
                        if(grilla[fila][Jugada].equals(grilla[fila][Jugada+v])){
                            valorGanar++;
                            if(valorGanar==3){
                                Ganar=true;
                                System.out.println("6");
                            }
                        }
                    }
                }else{
                    System.out.println("7");
                    if(Jugada-3>0){
                        valorGanar=0;
                        for(int v=1;v<=4;v++){
                            if(grilla[fila][Jugada].equals(grilla[fila][Jugada-v])){
                                valorGanar++;
                                if(valorGanar==3){
                                    Ganar=true;
                                    System.out.println("8");
                                }
                            }
                        }
                    }else{
                        System.out.println("9");
                        if((fila+3<n)&&(Jugada+3<n)){
                            valorGanar=0;
                            for(int v=1;v<=4;v++){
                                if(grilla[fila][Jugada].equals(grilla[fila+v][Jugada+v])){
                                    valorGanar++;
                                    if(valorGanar==3){
                                        Ganar=true;
                                        System.out.println("10");
                                    }
                                }
                            }
                        }else{
                            System.out.println("11");
                            if((fila+3<n)&&(Jugada-3<n)){
                                valorGanar=0;
                                for(int v=1;v<=4;v++){
                                    if(grilla[fila][Jugada].equals(grilla[fila+v][Jugada-v])){
                                        valorGanar++;
                                        if(valorGanar==3){
                                            Ganar=true;
                                            System.out.println("12");
                                        }
                                    }
                                }
                            }else{
 
                                System.out.println("13");
                                if((fila-3<n)&&(Jugada+3<n)){
                                    valorGanar=0;
                                    for(int v=1;v<=4;v++){
                                        if(grilla[fila][Jugada].equals(grilla[fila-v][Jugada+v])){
                                            valorGanar++;
                                            if(valorGanar==3){
                                                Ganar=true;
                                                System.out.println("14");
                                            }
                                        }
                                    }
                                }else{
                                    System.out.println("15");
                                    if((fila-3<n)&&(Jugada-3<n)){
                                        valorGanar=0;
                                        for(int v=1;v<=4;v++){
                                            if(grilla[fila][Jugada].equals(grilla[fila-v][Jugada-v])){
                                                valorGanar++;
                                                if(valorGanar==3){
                                                    Ganar=true;
                                                    System.out.println("16");
                                                }
                                            }
                                        }
                                    }else{
                                        System.out.println("17");
                                        if(!(grilla[1][1].equals("*"))){
                                            valorGanar=0;
                                            for(int v=2;v<n;v++){
                                                if(!(grilla[1][v].equals("*"))){
                                                    ValorEmpate++;
                                                    if(ValorEmpate==n-2){
                                                        Empate=true;
                                                        System.out.println("18");
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
 
}
 
 
 
public static void main(String[]args){
    CuatroEnRaya prueba = new CuatroEnRaya();
    prueba.MenuJuego();
}
}


Hola de que se trata este programita para como te puedo ayudar
 

Berseker1

Lanero Reconocido
Lanero VIP
29 Jul 2006
1,532
buenas laneros.... tengo un problemita programando en java... no se mucho y hasta ahora he empezado.. bueno la cuestion es que estoy haciendo una calculadora en java y necesito seria ayuda, necesito saber lo siguiente:

-como hacer para que un boton de numero me bote ese numero en la txtDato
-como hacer para hacer que un boton de funcion(suma,resta,etc)
-y en lo que me puedan guiar de mas

aqui les dejo el codigo que llevo:

import
java.awt.BorderLayout;
import


java.awt.Color;
import


java.awt.Font;
import


java.awt.Toolkit;
import


java.awt.event.ActionEvent;
import


java.awt.event.ActionListener;
import


java.awt.event.KeyEvent;

import


javax.swing.JButton;
import


javax.swing.JFrame;
import


javax.swing.JTextField;


public


class calculadora extends JFrame {

public calculadora (){




//Display

final JTextField txtDato=new JTextField(20);
txtDato.setBounds(0, 0, 200, 30);

//botones de numeros

JButton btn1=new JButton("1");

btn1.setBounds(50,30,50,30);
btn1.addActionListener(new ActionListener(){
publicvoid actionPerformed (ActionEvent e){
}
});


JButton btn4=new JButton("4");
btn4.setBounds(50,60,50,30);
btn4.addActionListener(new ActionListener(){
publicvoid actionPerformed (ActionEvent e){

}
});

JButton btn7=new JButton("7");
btn7.setBounds(50,90,50,30);
btn7.addActionListener(new ActionListener(){
publicvoid actionPerformed (ActionEvent e){

}
});

JButton btn9=new JButton("9");
btn9.setBounds(150,90,50,30);
btn9.addActionListener(new ActionListener(){
publicvoid actionPerformed (ActionEvent e){

}
});

JButton btn2=new JButton("2");
btn2.setBounds(100,30,50,30);
btn2.addActionListener(new ActionListener(){
publicvoid actionPerformed (ActionEvent e){

}
});

JButton btn5=new JButton("5");
btn5.setBounds(100,60,50,30);
btn5.addActionListener(new ActionListener(){
publicvoid actionPerformed (ActionEvent e){

}
});

JButton btn8=new JButton("8");
btn8.setBounds(100,90,50,30);
btn8.addActionListener(new ActionListener(){
publicvoid actionPerformed (ActionEvent e){

}
});

JButton btn3=new JButton("3");
btn3.setBounds(150,30,50,30);
btn3.addActionListener(new ActionListener(){
publicvoid actionPerformed (ActionEvent e){

}
});

JButton btn6=new JButton("6");
btn6.setBounds(150,60,50,30);
btn6.addActionListener(new ActionListener(){
publicvoid actionPerformed (ActionEvent e){

}
});

JButton btn0=new JButton("0");
btn0.setBounds(100,120,50,30);
btn0.addActionListener(new ActionListener(){
publicvoid actionPerformed (ActionEvent e){

}
});

//botones de funciones


//

JButton btnCE=new JButton("CE");
btnCE.setBounds(150, 120, 50, 30);
btnCE.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent e){

}
});

JButton btnigual=new JButton("=");
btnigual.setBounds(50, 120, 50, 30);
btnigual.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent e) {

}
});

JButton btnSumar=new JButton("+");
btnSumar.setBounds(0, 30, 50, 30);
btnSumar.setMnemonic(KeyEvent.VK_S);
btnSumar.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent e) {
int a=Integer.parseInt(txtDato.getText());

}
});

JButton btnRestar=new JButton("-");
btnRestar.setBounds(0, 60, 50, 30);
btnRestar.setMnemonic(KeyEvent.VK_R);
btnRestar.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent e) {


}
});


JButton btnMultiplicar=new JButton("*");
btnMultiplicar.setBounds(0, 90, 50, 30);
btnMultiplicar.setMnemonic(KeyEvent.VK_M);
btnMultiplicar.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent e) {

}
});

JButton btnDividir=new JButton("/");
btnDividir.setBounds(0, 120, 50, 30);
btnDividir.setMnemonic(KeyEvent.VK_D);
btnDividir.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent e) {
;
}

})
;

//datos de la ventana
this.add(btnCE);
this.add(btn1);
this.add(btn2);
this.add(btn3);
this.add(btn4);
this.add(btn5);
this.add(btn6);
this.add(btn7);
this.add(btn8);
this.add(btn9);
this.add(btn0);
this.add(btnDividir);
this.add(btnMultiplicar);
this.add (btnMultiplicar);
this.setLayout(null);
this.add(btnRestar);
this.add(btnigual);
this.add(btnSumar);
this.add(txtDato);
this.setSize(210,183);
this.setTitle("Calculadora");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().setBackground(Color.DARK_GRAY);
this.setLocation(((Toolkit.getDefaultToolkit().getScreenSize().width-this.getSize().width)/2),
(Toolkit.getDefaultToolkit().getScreenSize().height-this.getSize().height)/2);
this.setVisible(true);

}

privatestaticfinallongserialVersionUID = 1L;
publicstaticvoid main(String[] args) {
new calculadora();

}

}


gracias por la ayuda que me puedan prestar

saludos
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
buenas laneros.... tengo un problemita programando en java... no se mucho y hasta ahora he empezado.. bueno la cuestion es que estoy haciendo una calculadora en java y necesito seria ayuda, necesito saber lo siguiente:
[/left]

que no diga que pimiento alfin les metio java...jeje porque gordillo lo dudo mucho jeje...bueno la cosa es sencilla los botones responden a la interfaz ActionListener...asi lo mas aconsejable es definir un metodo para el boton y agregarlo mediante la interfaz....pille algo asi:

Boton.addActionListener(new ActionListener() {public void actionPerformed( ActionEvent eventoAccion ){metodo();}});

Claro el metodo hay que definier en algun lado de la clase digamos asi:

public static void metodo()
{
//Aqui va todo lo que tiene que hacer el boton....
}

bueno pos para lo de las cajas de texto se usan los metodos setText(); para fijar lo que se quiere mostrar y getText(); para obtener lo que hay en ella....
_________________________________________________________________________

Bien bros ahora si en otro tema ando con el cuento de la comunicacion usando java y la verdad toy crudo...he tratado de hacer el ejemplo basico del servidor tcp/ip y nada no lo consigo....me sale un error que ni idea porque o que significa....espero me puedan ayudar...aqui dejo el codigo...es el mas generico posible.


PHP:
//El Cliente...

import java.net.*;
import java.io.*;

public class minimoCliente {
    public static void main( String args[] ) throws IOException {
        int c;
        Socket s;
        InputStream sIn;

        // Abrimos una conexión con depserver en el puerto 4321
        s = new Socket( "breogan",4321 );

        // Obtenemos un controlador de fichero de entrada del socket y
        // leemos esa entrada
        sIn = s.getInputStream();
        while( ( c = sIn.read() ) != -1 )
            System.out.print( (char)c );
    
        // Cuando se alcance el fin de fichero, cerramos la conexión y
        // abandonamos
        s.close();
        }
    }

PHP:
//El Servidor...

import java.net.*; 
import java.io.*; 

public class minimoServidor 
{ 
 public static void main( String args[] ) 
 { 
  ServerSocket s = (ServerSocket)null; 
  Socket s1; 
  String cadena = "Tutorial de Java!"; 
  int longCad; 
  OutputStream s1out;  
  //Establece el servidor en el socket 4321 (espera 300 segundos) 
  try 
  { 
   s = new ServerSocket( 4321,300); 
  }
  catch( IOException e ) 
  { 
   System.out.println(e);
  }  
  //Ejecuta un bucle infinito de listen/accept 
  while(true) 
  { 
   try 
   { 
    //Espera para aceptar una conexión 
    s1 = s.accept();  
    //Obtiene un controlador de fichero de salida asociado  con el socket 
    s1out = s1.getOutputStream();  
    //Enviamos nuestro texto 
    longCad = cadena.length(); 
    for( int i=0; i < longCad; i++ ) 
        s1out.write((int)cadena.charAt(i));  
    //Cierra la conexión, pero no el socket del servidor 
    s1.close(); 
   } 
   catch(IOException e) 
   { 
    System.out.println( e ); 
   } 
  } 
 } 
}

He ejecutado el servidor en mmi pc y luego el cliente...y me sale un error todo raro...no se si es que necesito hacerlo con otro equipo en red o que pasa....agradesco cualquier dato.

El error me lo bota el cliente y dice asi:

Exception in thread "main" java.net.UnknownHostException: breogan
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at minimoCliente.main(minimoCliente.java:11)
 

Berseker1

Lanero Reconocido
Lanero VIP
29 Jul 2006
1,532
que no diga que pimiento alfin les metio java...jeje porque gordillo lo dudo mucho jeje...bueno la cosa es sencilla los botones responden a la interfaz ActionListener...asi lo mas aconsejable es definir un metodo para el boton y agregarlo mediante la interfaz....pille algo asi:

Boton.addActionListener(new ActionListener() {public void actionPerformed( ActionEvent eventoAccion ){metodo();}});

Claro el metodo hay que definier en algun lado de la clase digamos asi:

public static void metodo()
{
//Aqui va todo lo que tiene que hacer el boton....
}

bueno pos para lo de las cajas de texto se usan los metodos setText(); para fijar lo que se quiere mostrar y getText(); para obtener lo que hay en ella....
_________________________________________________________________________

Bien bros ahora si en otro tema ando con el cuento de la comunicacion usando java y la verdad toy crudo...he tratado de hacer el ejemplo basico del servidor tcp/ip y nada no lo consigo....me sale un error que ni idea porque o que significa....espero me puedan ayudar...aqui dejo el codigo...es el mas generico posible.


PHP:
//El Cliente...
 
import java.net.*;
import java.io.*;
 
public class minimoCliente {
    public static void main( String args[] ) throws IOException {
        int c;
        Socket s;
        InputStream sIn;
 
        // Abrimos una conexión con depserver en el puerto 4321
        s = new Socket( "breogan",4321 );
 
        // Obtenemos un controlador de fichero de entrada del socket y
        // leemos esa entrada
        sIn = s.getInputStream();
        while( ( c = sIn.read() ) != -1 )
            System.out.print( (char)c );
 
        // Cuando se alcance el fin de fichero, cerramos la conexión y
        // abandonamos
        s.close();
        }
    }

PHP:
//El Servidor...
 
import java.net.*; 
import java.io.*; 
 
public class minimoServidor 
{ 
 public static void main( String args[] ) 
 { 
  ServerSocket s = (ServerSocket)null; 
  Socket s1; 
  String cadena = "Tutorial de Java!"; 
  int longCad; 
  OutputStream s1out;  
  //Establece el servidor en el socket 4321 (espera 300 segundos) 
  try 
  { 
   s = new ServerSocket( 4321,300); 
  }
  catch( IOException e ) 
  { 
   System.out.println(e);
  }  
  //Ejecuta un bucle infinito de listen/accept 
  while(true) 
  { 
   try 
   { 
    //Espera para aceptar una conexión 
    s1 = s.accept();  
    //Obtiene un controlador de fichero de salida asociado  con el socket 
    s1out = s1.getOutputStream();  
    //Enviamos nuestro texto 
    longCad = cadena.length(); 
    for( int i=0; i < longCad; i++ ) 
        s1out.write((int)cadena.charAt(i));  
    //Cierra la conexión, pero no el socket del servidor 
    s1.close(); 
   } 
   catch(IOException e) 
   { 
    System.out.println( e ); 
   } 
  } 
 } 
}

He ejecutado el servidor en mmi pc y luego el cliente...y me sale un error todo raro...no se si es que necesito hacerlo con otro equipo en red o que pasa....agradesco cualquier dato.

El error me lo bota el cliente y dice asi:

Exception in thread "main" java.net.UnknownHostException: breogan
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at minimoCliente.main(minimoCliente.java:11)

ps si, estamos viendo java, y sin saber ni nada.. ya me toko hacer una calculadora.. jajajaja.. y ps ahi ya habia echo casi todo el maquillaje de la ventana.. pero como apenas empeze a programar.. quede gringo con lo que me dijo para lo de los botons.. XD

saludos
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
ps si, estamos viendo java, y sin saber ni nada.. ya me toko hacer una calculadora.. jajajaja.. y ps ahi ya habia echo casi todo el maquillaje de la ventana.. pero como apenas empeze a programar.. quede gringo con lo que me dijo para lo de los botons.. XD

saludos

umm pues lo mejor seria que viera un ejemlo....bueno pues aqui va lo posteare:

PHP:
// Programa para barajar y repartir cartas.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class PaqueteDeCartas extends JFrame 
{
 private Carta paquete[];
 private int cartaActual;
 private JButton repartirBoton, barajarBoton;
 private JTextField pantallaCampo;
 private JLabel estadoEtiqueta;

 public static void main( String args[] )
 {
  PaqueteDeCartas aplicacion = new PaqueteDeCartas();
  aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
 
 public PaqueteDeCartas()
 {
  String caras[] = { "As", "Dos", "Tres", "Cuatro", "Cinco", "Seis","Siete", "Ocho", "Nueve", "Diez", "Jota", "Qûina", "Rey" };
  String palos[] = { "Corazones", "Diamantes", "Tréboles", "Espadas" };
  
  paquete = new Carta[52];
  cartaActual = -1;
  
  for ( int cuenta = 0; cuenta < paquete.length; cuenta++ ) 
    paquete[cuenta] = new Carta(caras[cuenta%13],palos[cuenta/13]);

  Container contenedor = getContentPane();
  contenedor.setLayout(new FlowLayout());     
  
  repartirBoton = new JButton("Repartir carta");
  repartirBoton.addActionListener(new ActionListener() {public void actionPerformed( ActionEvent eventoAccion ){repartir();}});
  
  barajarBoton = new JButton("Barajar cartas");
  barajarBoton.addActionListener(new ActionListener() {public void actionPerformed( ActionEvent eventoAccion ){barajando();}});
  
  pantallaCampo = new JTextField( 20 );
  pantallaCampo.setEditable( false );
  
  estadoEtiqueta = new JLabel();
  
  contenedor.add(repartirBoton);
  contenedor.add( barajarBoton );
  contenedor.add( pantallaCampo );
  contenedor.add( estadoEtiqueta );
  
  this.setResizable(false);
  this.setTitle( "Reparte Cartas" );
  this.setSize( 275, 120 );  
  this.setVisible( true ); 
 }

 private void repartir()
 {
  Carta repartida = repartirCarta();
  if (repartida != null) 
  {
   pantallaCampo.setText( repartida.toString());
   estadoEtiqueta.setText( "Carta #: " + cartaActual );
  }
  else 
  {
   pantallaCampo.setText("NO HAY MAS CARTAS QUE REPARTIR");
   estadoEtiqueta.setText("Barajee las cartas para continuar");
  }     
 }
 
 private void barajando()
 {
  barajar();
  pantallaCampo.setText("SE BARAJO EL PAQUETE");
 }
 
 private void barajar()
 {
  cartaActual = -1;
  Carta temp;
  for ( int primera = 0; primera < paquete.length; primera++ ) 
  {
   int segunda = (int) (Math.random()*52);
   temp = paquete[primera];
   paquete[primera] = paquete[segunda];
   paquete[segunda] = temp;
  }
  repartirBoton.setEnabled( true );
 }

 private Carta repartirCarta()
 {
  if (++cartaActual < paquete.length)
       return paquete[cartaActual];
  else
  {        
   repartirBoton.setEnabled( false );
   return null;
  }
 }
  
}

class Carta
{
 private String cara;
 private String palo;

 public Carta( String caraCarta, String paloCarta )
 {
  cara = caraCarta;
  palo = paloCarta;
 }

 public String toString()
 { 
  return cara + " de " + palo; 
 }
 
}

Este es un programa bien sencillo....busquese un buen manual...o pues le mando uno al mail...lo postearia pero pesa mucho...asi que toca por correo...a todas no problem en un par de dias resuelvo mi situacion y quien quita vuelvo a la u...y les echo una mano...suerte pos...a una cosa bro cuando responda a un posta editelo....asi no repite todo lo que ya esta....jeje buenos suertes....

________________________________________________________________________

Ya en otra cosa nadie me puede ayudar con lo del tcp/ip ando jodido auxiliooooooooooo :(

Jeje ya en serio agradeseria mucho cualquier ayuda.
 

Apoptygma

Lanero Regular
13 Abr 2007
13
Java ventana!

package Java00;

import javax.swing.*;

public class Principal {


public static void main(String []args){

JFrame f = new JFrame();

f.setVisible(true);

}

}


:p Mismo resultado !!!
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
ummm no se bros...sigo de recontra con esto de las comunicaciones en java...y pos como no tengo red en que probar el tcp/ip me parece que boy a cambiar de protocolo...a ftp...sera mas dificil pero hoy en dia conseguirse un servidor ftp es muy facil al menos tendre con que probar los codigos....sin embargo creo que me falta mucha documentacion...lo mejor que encotrado es esto http://www.cica.es/formacion/JavaTut/Cap9/comms.html y pues no es mucho...alguien sabe donde puedo encontrar mas documentacion de buena calidad....os lo agradeceria.

_________________________________________________________________________

Olvide decir que ya solucione el problema del cliente en el codigo que postee antes....el error estaba en:

PHP:
        // Abrimos una conexión con depserver en el puerto 4321
        s = new Socket( "breogan",4321 );

Resulta que "breogan" se supone que es el nombre de la maquina a la que uno se quiere conectar...en mi caso "shadow1" asi que por eso no funcionaba....tenia mal el nombre del host....eso me pasa por no leer la teoria...bueno pos ya aclarada la cosa ahora sigo con el cuento del ftp.
 

Berseker1

Lanero Reconocido
Lanero VIP
29 Jul 2006
1,532
umm pues lo mejor seria que viera un ejemlo....bueno pues aqui va lo posteare:

PHP:
// Programa para barajar y repartir cartas.
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class PaqueteDeCartas extends JFrame 
{
 private Carta paquete[];
 private int cartaActual;
 private JButton repartirBoton, barajarBoton;
 private JTextField pantallaCampo;
 private JLabel estadoEtiqueta;
 
 public static void main( String args[] )
 {
  PaqueteDeCartas aplicacion = new PaqueteDeCartas();
  aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
 
 public PaqueteDeCartas()
 {
  String caras[] = { "As", "Dos", "Tres", "Cuatro", "Cinco", "Seis","Siete", "Ocho", "Nueve", "Diez", "Jota", "Qûina", "Rey" };
  String palos[] = { "Corazones", "Diamantes", "Tréboles", "Espadas" };
 
  paquete = new Carta[52];
  cartaActual = -1;
 
  for ( int cuenta = 0; cuenta < paquete.length; cuenta++ ) 
    paquete[cuenta] = new Carta(caras[cuenta%13],palos[cuenta/13]);
 
  Container contenedor = getContentPane();
  contenedor.setLayout(new FlowLayout());     
 
  repartirBoton = new JButton("Repartir carta");
  repartirBoton.addActionListener(new ActionListener() {public void actionPerformed( ActionEvent eventoAccion ){repartir();}});
 
  barajarBoton = new JButton("Barajar cartas");
  barajarBoton.addActionListener(new ActionListener() {public void actionPerformed( ActionEvent eventoAccion ){barajando();}});
 
  pantallaCampo = new JTextField( 20 );
  pantallaCampo.setEditable( false );
 
  estadoEtiqueta = new JLabel();
 
  contenedor.add(repartirBoton);
  contenedor.add( barajarBoton );
  contenedor.add( pantallaCampo );
  contenedor.add( estadoEtiqueta );
 
  this.setResizable(false);
  this.setTitle( "Reparte Cartas" );
  this.setSize( 275, 120 );  
  this.setVisible( true ); 
 }
 
 private void repartir()
 {
  Carta repartida = repartirCarta();
  if (repartida != null) 
  {
   pantallaCampo.setText( repartida.toString());
   estadoEtiqueta.setText( "Carta #: " + cartaActual );
  }
  else 
  {
   pantallaCampo.setText("NO HAY MAS CARTAS QUE REPARTIR");
   estadoEtiqueta.setText("Barajee las cartas para continuar");
  }     
 }
 
 private void barajando()
 {
  barajar();
  pantallaCampo.setText("SE BARAJO EL PAQUETE");
 }
 
 private void barajar()
 {
  cartaActual = -1;
  Carta temp;
  for ( int primera = 0; primera < paquete.length; primera++ ) 
  {
   int segunda = (int) (Math.random()*52);
   temp = paquete[primera];
   paquete[primera] = paquete[segunda];
   paquete[segunda] = temp;
  }
  repartirBoton.setEnabled( true );
 }
 
 private Carta repartirCarta()
 {
  if (++cartaActual < paquete.length)
       return paquete[cartaActual];
  else
  {        
   repartirBoton.setEnabled( false );
   return null;
  }
 }
 
}
 
class Carta
{
 private String cara;
 private String palo;
 
 public Carta( String caraCarta, String paloCarta )
 {
  cara = caraCarta;
  palo = paloCarta;
 }
 
 public String toString()
 { 
  return cara + " de " + palo; 
 }
 
}

Este es un programa bien sencillo....busquese un buen manual...o pues le mando uno al mail...lo postearia pero pesa mucho...asi que toca por correo...a todas no problem en un par de dias resuelvo mi situacion y quien quita vuelvo a la u...y les echo una mano...suerte pos...a una cosa bro cuando responda a un posta editelo....asi no repite todo lo que ya esta....jeje buenos suertes....

gracias men... y si.. ojala que pueda resolver su situacion... jejejeje.. ya hasta hace falta su participacion...

saludos
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
gracias men... y si.. ojala que pueda resolver su situacion... jejejeje.. ya hasta hace falta su participacion...
saludos

He quien dijera que se han despelotado sin mi presencia....pero que no panda el cunico ya mañana regreso al menos por ahora jeje..........
_________________________________________________________________________

Bueno regresando al tema que me atañe aqui va un codigo que me encontre en internet y que realiza todas las funciones de un cliente ftp en modo texto....para ejecutarlo hay que escribir java HazFtp Host donde Host es el servidor de ftp...por ejemplo java HazFtp ftp.hosteando.org...como la cosa es apunta de comandos (cosa que no nos fastidia a lus linuxeros pero si a los otros) primero hay que familiarzarse bien con los comandos ftp....para eso pueden ir a esta pag: http://members.tripod.com/vteforte/index2.html en el apartado protocolo ftp

Bueno ya sin mas palabreria vamos al codigo:

PHP:
import java.io.*;
import java.net.*;
import java.util.*; // Para maninpulación de Strings, ...

 

public class HazFtp 
{
// Primer dígito de los códigos de respuesta FTP

 static final int PRELIMINAR = 1; // respuesta preliminar positiva
 static final int COMPLETADO = 2; // respuesta final positiva

 public static int CogeRespuesta(DataInputStream is) 
 {
  /* Coge el texto de respuesta del servidor desde el puerto de control despues que se haya
    tecleado un comando ftp. Sabe la última linea de la respuesta porque empieza con 3
    números y un espacio en blanco.
    Parámetros :

    - is input stream en el puerto de control ftp del socket 
    - return devuelve el primer caracter de la ultima linea como un entero .*/

  String salidaSocket;

  try 
  {
   do 
   {  
    salidaSocket = is.readLine( );
    /* el método readLine , devuelve un string con el contenido de la linea que lee ,
       y que reconoce por medio de los caracteres de control (\n ,\r ...) */

    System.out.println(salidaSocket); // salida por pantalla

    // Seguimos con el bucle do-while

   }
   while (!(Character.isDigit(salidaSocket.charAt(0)) && Character.isDigit(salidaSocket.charAt(1)) && Character.isDigit(salidaSocket.charAt(2)) && salidaSocket.charAt(3) == ' '));
   // Mientras ninguno de los 3 primeros digitos sea un blanco
  } 
  catch (IOException e) 
  {
   System.out.println("Error al intentar obtener la respuesta desde el puerto de control");
   return(0);
  }

  return(Integer.parseInt(salidaSocket.substring(0,1))); // Aquí es donde nos devuelve el primer digito
 }

 public static boolean port(ServerSocket Socketservidor, DataInputStream entradaPuertoControl, PrintStream salidaPuertoControl) 
 {
  /* Se encarga de preparar los comandos para enviar la orden port al servidor e indicarle
  en que puerto esta el cliente escuchando, obteniendo una respuesta valida. 
  Parámetros :

  - Socketservidor : Socket para obtener la información. 
  - entradaPuertoControl, salidaPuertoControl : Streams utilizados.*/

  int localport = Socketservidor.getLocalPort( );
  // Obtiene el puerto donde está escuchando el socket

  System.out.println("Escucharemos en el puerto, " + localport);
  InetAddress inetaddress = Socketservidor.getInetAddress();

  /* Obtiene la dirección IP remota a la cual está conectado el socket */
  InetAddress localip;

  try 
  {
   localip = inetaddress.getLocalHost(); // Obtiene la IP local
  } 
  catch(UnknownHostException e) 
  {
   System.out.println("No puedo obtener el local host");
   return(false);
  }

  byte[] addrbytes = localip.getAddress( ); // Obtiene la dirección raw IP.
  /* El resultado viene en orden de red, el byte de mayor orden de la dirección está
  en getAddress[0]. Se declara un vector addrbytes y se le dice al servidor en
  que puerto estamos escuchando */

  short addrshorts[] = new short[4]; // donde almacenaremos la IP

  for(int i = 0; i <= 3; i++)
  {
   addrshorts[i] = addrbytes[i];
   
   if(addrshorts[i] < 0) 
     addrshorts[i] += 256;
  }
  // Los bytes mayores que 127 se entienden como números negativos

  salidaPuertoControl.println("port " + addrshorts[0] + "," +addrshorts[1] + ","+ addrshorts[2] + ","+ addrshorts[3] + "," + 
                             ((localport & 0xff00) >>8) + "," + (localport & 0x00ff));

  System.out.println("port " + addrshorts[0] + "," +addrshorts[1] + ","+addrshorts[2] + ","+ addrshorts[3] + "," + 
                      ((localport & 0xff00) >>8) + "," + (localport & 0x00ff));

  int result = CogeRespuesta(entradaPuertoControl); //Obtiene la respuesta del servidor.

  return(result == COMPLETADO);
 }

 public static void PuertoDeDatos(String comando, boolean SalvarAFichero, DataInputStream entradaPuertoControl, PrintStream salidaPuertoControl) 
 {
  /* Implementa los comandos para la transferencia de ficheros que necesitan
  un puerto de datos. Le comunica al servidor el puerto de datos donde escuchará,
  después envia los comandos por el puerto de control y espera la respuesta del
  servidor por el puerto de datos.
  Parámetros :
  
  - comando:list, nlist, o retr mas argumentos
  - SalvarAFichero : Si se salva a fichero o se saca por pantalla.
  - entradaPuertoControl: input stream en el puerto de control del socket
  - salidaPuertoControl: output stream en el puerto de control del socket */

  ServerSocket Socketservidor = null; // Declaramos un socket de servidor

  try 
  {
   Socketservidor = new ServerSocket(0);

   /* Se crea un socket servidor en cualquier puerto libre,
   ya que le pasamos un 0 como parámetro port. */

  } 
  catch (IOException e) 
  {
   System.out.println(" No puedo obtener puerto para escuchar: " + Socketservidor.getLocalPort( ) + ", " + e);
  }

  port(Socketservidor, entradaPuertoControl, salidaPuertoControl);

  if(SalvarAFichero)
  {
   salidaPuertoControl.println("type i"); // Pasa el tipo de transferencia a binario
   System.out.println("type i");
   CogeRespuesta(entradaPuertoControl); // Respuesta del servidor
  } // end if
  salidaPuertoControl.println(comando); // Envio del comando por el stream
  System.out.println(comando);
  int result = CogeRespuesta(entradaPuertoControl); // Obtiene la respuesta del servidor
  
  if(result == PRELIMINAR)
  { 
   // Si se obtiene una respuesta positiva.
   Socket Socketcliente = null;

   try 
   {
    Socketcliente = Socketservidor.accept( );
    /* al aceptar la conexión se crea un nuevo socket para procesarla.
    El método accept() es bloqueante , el proceso esperará a que se
    realice una conexión por parte del cliente. */
   } 
   catch (IOException e) 
   {
    System.out.println("Error en la conexión con el servidor (Accept) : " + Socketservidor.getLocalPort() + ", " + e);
   }

   try 
   {
    InputStream is = Socketcliente.getInputStream();
    /* declaramos un input stream para leer bytes desde el socket */
    byte b[] = new byte[1024]; // Reservamos un buffer de 1K
    int longitud; // Nos servirá para determinar el tamaño de los datos.

    if(SalvarAFichero)
    {
     StringTokenizer stringtokens = new StringTokenizer(comando);
     stringtokens.nextToken();
     String NombreFichero = stringtokens.nextToken();// Obtiene el nombre de NombreFichero
     RandomAccessFile FicheroSalida = new RandomAccessFile(NombreFichero, "rw");

     // Abre el fichero para lectura / Escritura

     while((longitud = is.read(b)) != -1)
     { 
      // Mientras existan datos en el buffer
      /* el método read(b) se encarga de leer bytes del stream
      y almacenarlos en el vector b */
      FicheroSalida.write(b, 0, longitud); // Escribe en el fichero el contenido del buffer
      System.out.print("#");
     }
     System.out.print("\n");
     FicheroSalida.close();
    } // end if SalvarAFichero

    else // Si no SalvarAFichero
    {
     while((longitud = is.read(b)) != -1) // Mientras existan datos en el buffer
     System.out.write(b, 0, longitud);
    }
    CogeRespuesta(entradaPuertoControl);
    is.close();
    Socketcliente.close();
   } 
   catch (IOException e) 
   {
    e.printStackTrace();
   }
  } // end if PRELIMINAR
  else 
  { // Si la respuesta no es positiva
   System.out.println("Se ha producido un error en la transferencia");
   try 
   {
    Socketservidor.close();
   } 
   catch (IOException e) 
   {
    System.out.println("Se ha producido un error al cerrar el socket servidor.");
   }
  }
 }

 public static boolean EnviarFichero(String comando, DataInputStream entradaPuertoControl, PrintStream salidaPuertoControl)
 {
  /*. Subir al servidor un fichero en modo binario utilizando tanto stor o bien stou.
  Parámetros :
 
  - comando : stor o stou mas argumentos
  - entradaPuertoControl : input stream en el puerto de control
  - salidaPuertoControl : output stream en el puerto de control. */

  ServerSocket Socketservidor = null;

  try 
  {
   Socketservidor = new ServerSocket(0); // Se crea un socket servidor en cualquier puerto libre.
  } 
  catch (IOException e) 
  {
   System.out.println("No puedo obtener puerto para escuchar : " + Socketservidor.getLocalPort() + ", " + e);
   return(false);
  }
 
  port(Socketservidor, entradaPuertoControl, salidaPuertoControl);
  salidaPuertoControl.println("type i"); // Pone el tipo de transferencia a binario
  System.out.println("type i");
  CogeRespuesta(entradaPuertoControl);

  // ok, envia el comando

  salidaPuertoControl.println(comando);
  System.out.println(comando);
  int result = CogeRespuesta(entradaPuertoControl);

  if(result == PRELIMINAR)
  {
   // Escucha en el puerto de datos
   Socket Socketcliente = null;
   try 
   {
    Socketcliente = Socketservidor.accept();
    /* Acepta la llegada de la conexión y crea un socket para procesarla */
   } 
   catch (IOException e) 
   {
    System.out.println("El Servidor no acepta la conexión (Accept): " + Socketservidor.getLocalPort() + ", " + e);
   }

   try 
   {
    OutputStream SalidaPuertoDatos = Socketcliente.getOutputStream();
    byte b[] = new byte[1024]; // Creamos un buffer de 1K
    StringTokenizer stringtokens = new StringTokenizer(comando);
    stringtokens.nextToken();

    String NombreFichero = stringtokens.nextToken(); // toma el nombre del fichero
    // abre el fichero para lectura
    RandomAccessFile FicheroEntrada = new RandomAccessFile(NombreFichero, "r");
    // Envia el fichero
    int longitud;
    while ((longitud = FicheroEntrada.read(b)) > 0) 
    {
     /* El método read lee bytes del fichero y los almacena en el buffer.
     Este método devolverá un 0 al final del fichero */
     SalidaPuertoDatos.write(b, 0, longitud); // Escribe en el stream el contenido del buffer

     System.out.print("#");
    } // end while

    System.out.print("\n");
    FicheroEntrada.close();
    SalidaPuertoDatos.close();
    Socketcliente.close();
    Socketservidor.close();
    result = CogeRespuesta(entradaPuertoControl); // Obtiene la respuesta del servidor
   } 
   catch (IOException e) 
   {
    e.printStackTrace();
   }
   
   return(result == COMPLETADO);
  } // end if PRELIMINAR

  else 
  { // Si no es positiva
   System.out.println("Error en la transferencia");
   try 
   {
    Socketservidor.close();
   } 
   catch (IOException e) 
   {
    System.out.println("Error al cerrar el socket servidor.");
   }
   return(false);
  }
 } // end EnviarFichero

 public static void main(String[] args) 
 {
  /* Bucle principal que clasifica los comandos y los envia a la función apropiada.
  Parámetros : - args : args[0] es el nombre del host para hacer ftp.*/

  if(args.length != 1) 
  {
   System.out.println("Uso de la aplicacion : java HazFtp maquina servidor FTP");
   System.exit(1); // salimos de la aplicación
  }

  Socket miSocket = null;
  PrintStream os = null;
  DataInputStream is = null;
  // Declaramos el socket y los streams a utilizar

  DataInputStream stdIn = new DataInputStream(System.in);
  // Instanciamos un stream para leer desde la entrada estandar

  try 
  {
   miSocket = new Socket(args[0], 21);
   /* Creamos el socket pasandole como parámetros el host (IP o String host)
   y el puerto bien conocido del servicio ftp (21). */

   os = new PrintStream(miSocket.getOutputStream());
   is = new DataInputStream(miSocket.getInputStream());
  } 
  catch (UnknownHostException e) 
  {
   System.err.println("Host Desconocido : "+args[0]);
  } 
  catch (IOException e) 
  {
   System.err.println("No se puede abrir una conexión con el host: " +args[0]);
  }

  if (miSocket != null && os != null && is != null) 
  {
   try 
   {
    String entradaUsuario;
    CogeRespuesta(is); //Obtiene la respuesta del servidor
    // Bucle de lectura y escritura

    while ((entradaUsuario = stdIn.readLine()) != null) 
    {
     if(entradaUsuario.startsWith("list") || entradaUsuario.startsWith("nlst"))
       PuertoDeDatos(entradaUsuario, false, is, os);
     
     else if(entradaUsuario.startsWith("retr"))
       PuertoDeDatos(entradaUsuario, true, is, os); // SalvarAFichero a true
     
     else if(entradaUsuario.startsWith("stor") || entradaUsuario.startsWith("stou"))
       EnviarFichero(entradaUsuario, is, os);
     
     else 
     {
      os.println(entradaUsuario); // Se envia otro comando FTP
      CogeRespuesta(is); //Obtiene la respuesta del servidor
     } // end else
    } // end while entradaUsuario
    os.close();
    is.close();
    miSocket.close(); //Cerramos los streams y el socket
   }
   catch (IOException e) 
   {
    System.err.println("E/S fallo en la conexión a : "+ args[0]);
   }
  } // if miSocket
 } // main
} // Class HazFtp
Claro si uno se fija este codigo usa una transmision de datos activa, lo que hoy dia es casi obsoleto...ando modificandolo a un esquema de transmision pasiva que es mas sencilla, estable y universal hoy dia...cuando acabe lo posteare...

Suerte:chino:
 

[sC+].B@rt.Oc3

Lanero Reconocido
13 Abr 2007
4,192
buenas laneros.... tengo un problemita programando en java... no se mucho y hasta ahora he empezado.. bueno la cuestion es que estoy haciendo una calculadora en java y necesito seria ayuda, necesito saber lo siguiente:

-como hacer para que un boton de numero me bote ese numero en la txtDato
-como hacer para hacer que un boton de funcion(suma,resta,etc)
-y en lo que me puedan guiar de mas

aqui les dejo el codigo que llevo:



gracias por la ayuda que me puedan prestar

saludos
[/left]

pues viejo estuve mirando pero la programacion en eclipse es mjy larga pero en cambio mas luego temando la calculadora grafica funcionado con neetbens 6.0.1
 

[sC+].B@rt.Oc3

Lanero Reconocido
13 Abr 2007
4,192
a pues creo que te puede servir para hacerla en el eclipse ya que se utiliza el mismo codigo fuente....

asi pues no vas a tener problema solamente tiene que tenr cudiado al momento de parla...

espero q te sirva..
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
a pues creo que te puede servir para hacerla en el eclipse ya que se utiliza el mismo codigo fuente....

asi pues no vas a tener problema solamente tiene que tenr cudiado al momento de parla...

espero q te sirva..

El problema de autogenerar el codigo del entorno grafico con el diseñador de netbeans es que se obtiene resto de metodos y elementos que de cierto modo son inutiles para uno y solo logran complicar el entendimiento de procesos.
 

[sC+].B@rt.Oc3

Lanero Reconocido
13 Abr 2007
4,192
El problema de autogenerar el codigo del entorno grafico con el diseñador de netbeans es que se obtiene resto de metodos y elementos que de cierto modo son inutiles para uno y solo logran complicar el entendimiento de procesos.


si
men tiene toda la razon pero men no puedes utilizar el neetbens para hacer la .....
 

juandaabril

Lanero Regular
19 Jun 2006
9
hola amigos tengo un dudilla, lo que pasa es que quiero hacer un aventana, que cuando le de en un boton, la ventana cambie de contenido, como cuando uno esta instalando algo que uno le da siguiente, siguiente, instalar y finalizar, asi que en cada etapa muestra algo diferente pero en la misma ventana.

lo que he ehco hasta ahora es quitando el panel y agregagando uno nuevo, pero se ve raro....

add(jpanel1)
remove(jpanel1)
pack()
add(jpanel2)
pack

algo asi es lo que hecho, habra otra forma de lograr eso?

gracias.
 

xjuanch0x

Lanero Reconocido
25 Sep 2004
690
bueno la verdad yo lo hice una ves a punta de paneles,pero es bastante complicado cuando el asistente se requiere que sea muy extenso...asi que busque un credor de asistentes y de instaladores que se llama CreateInstall es muy bueno y facil de manejar yo lo he probado asi que te lo recomiendo.
aqui hay un manual del uso...pruebalo y usa tu imaginacion

http://www.trucoswindows.net/foro/t...staladores-a-programas-con-createinstall.html