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 - camaleon123

#1
Java / Re: Arrays bidimensionales en un JText
11 Marzo 2010, 22:37 PM
PROBLEMA RESUELTO

Gracias
#2
Java / Arrays bidimensionales en un JText
11 Marzo 2010, 04:44 AM
Hola amigos, estoy haciendo arrays unidimensionales ( int matriz[][]=new int[4][4]; )

y siempre he usado el JOptionPane.showMessageDialog para todos mis mensajes ya que he aprendido y me ha gustado usar el JOptionPane en vez del System.outPrint.

Estoy trabajando con arrays bidimensionales y por medio de programacion orientada a objetas y la manera en que me aparece no me gusta, porque aparece todo horizontal o todo vertical, porque uso el siguiente codigo para mostrar los datos:

Código (java) [Seleccionar]

public static void ver(int matriz[][], int horizontal, int vertical)//aqui recibo los valores enviados desde el case en mismo orden
    {
        String valor=""; //necesario para concatenar los resultados
        for(int filas=0;filas<horizontal;filas++)//me sirve para moverme horizontalmente en las filas
            for(int columnas=0;columnas<vertical;columnas++)//me sirve para moverme verticalmente en las columnas
                valor = valor + matriz[filas][columnas] + "\n";//concateno el resultado
        JOptionPane.showMessageDialog(null,"Los valores en la Matriz son: \n" +valor); //muestro la matriz
    }


Como pueden ver, ahi solo me muestra de manera vertical.

He buscado en varios sitios en español e ingles sobre JText pero no puedo realizar que me muestre el array bidimensional con columnas y filas, como puedo hacerlo?

He intentado algo corto sin metodos para poder realizarlo con JText pero no me sale nada bien, muestra caracteres malos, este es lo que tengo:

Código (java) [Seleccionar]


import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class jtext
{
    public static void main(String arg[])
    {
        int matriz[][]=new int[3][3];

        String datos="";
        for(int fila=0;fila<matriz.length;fila++)
            for(int columna=0;columna<matriz.length;columna++)
            {
                matriz[fila][columna]=Integer.parseInt(JOptionPane.showInputDialog(null,"Da un valor:"));
                datos=datos+matriz[fila][columna]+"\n";
            }
        JTextArea salida = new JTextArea();
        salida.setText("La cadena es: \n"+datos);
        //salida.append(datos); //tampoco funciona
        JOptionPane.showMessageDialog(null, "La matriz es: \n" +salida);
    }
}


Como uso JText para poder mostrar mi array con JOptionPane las filas y columnas?
#3
Java / Explicacion de un simple ejercicio
6 Enero 2010, 05:44 AM
Hola que tal a todos Feliz Añoo!

Estoy editando un codigo de un ejercicio que no pude hacer y que luego me ayudaron proporcionandome el codigo que si corria bien sin errores (cuestion simple que no podia hacer :S), pero hay una parte del codigo que me gustaria que alguien del foro me explique cual es su funcion. Para empezar el programa es:

Código (java) [Seleccionar]

package uni;

import javax.swing.*;

public class arrays_bisiestos
{
   static int bisiestos[];

   public static void main(String arg[])
   {
       int tamano;
       int opciones;

       JOptionPane.showMessageDialog(null, "Este programa crea un arreglo del tamaño de tu gusto, \n " +
               "donde almacenará valores entre los años 1980 y 2010. \n " +
               "Para continuar da click en Aceptar");

       tamano=Integer.parseInt(JOptionPane.showInputDialog(null,"Introduce el total de número de años que deseas introducir para el arreglo: "));

       int arreglo1[]=new int[tamano];

       arrays_bisiestos.lectura(arreglo1);

       do
       {
           opciones=Integer.parseInt(JOptionPane.showInputDialog(null, "Escoge la opción de tu gusto: \n" +
                   "1) Para ver el arreglo de años que has introducido. \n " +
                   "2) Para visualizar cuales de los años que has introducido son años bisiestos. \n " +
                   "3) Para visualizar ambos datos, el total de años introducido por ti y los años bisiestos. \n " +
                   "4) Escribe para 4 para salir"));

           switch(opciones)
           {
               case 1: arrays_bisiestos.ver_arreglo(arreglo1);
               break;

               case 2: arrays_bisiestos.ver_anosbisiestos(arreglo1, bisiestos);
               break;

               case 3: arrays_bisiestos.ver_ambosarreglos(arreglo1, bisiestos);
               break;

               case 4: JOptionPane.showMessageDialog(null, "Adios");
               break;

               default: JOptionPane.showMessageDialog(null,"Opción Invalida, vuelve a intentarlo");
               break;
           }

       } while(opciones!=4);

   }

   public static void lectura(int arreglo[])
   {

       for (int posicion = 0; posicion < arreglo.length; posicion++)
       {
           arreglo[posicion] = Integer.parseInt(JOptionPane.showInputDialog(null, "Introduzca el año para la posición: " + posicion));

           if(arreglo[posicion] < 1980 || arreglo[posicion] > 2010)
           {
               JOptionPane.showMessageDialog(null,"Solo admito años entre 1980 y 2010, vuelve a intentarlo");
               posicion--;
           }
       }

       String años = "";

       String strAños[];

       for (int posicion = 0; posicion < arreglo.length; posicion++)
       {
           if(arreglo[posicion] % 4 == 0 || arreglo[posicion] % 400 == 0)
           {
               años = años + arreglo[posicion] + (posicion + 1 < arreglo.length ? ";" : "");
           }
       }

       strAños = años.split(";");

       bisiestos = new int[strAños.length];

       for (int posicion = 0; posicion < strAños.length; posicion++)
       {
           bisiestos[posicion] = Integer.parseInt(strAños[posicion]);
       }
   }

   public static void ver_arreglo(int arreglo[])
   {
       String anos="";

       for(int posicion=0;posicion<arreglo.length;posicion++)
           anos=anos+arreglo[posicion]+"\n";

       JOptionPane.showMessageDialog(null,"Los años introducidos fueron: \n" +anos);
   }

   public static void ver_anosbisiestos(int arreglo1[], int bisiestos[]) {

       String años = "";
       for (int posicion = 0; posicion < bisiestos.length; posicion++)
       {
           años = años + bisiestos[posicion] + "\n";
       }

       JOptionPane.showMessageDialog(null, "Los años son: \n" + años);
   }

   public static void ver_ambosarreglos(int arreglo1[], int bisiestos[])
   {
       String anos="";
       String bisiesto="";

       for(int posicion=0;posicion<arreglo1.length;posicion++)
           anos = anos + arreglo1[posicion] + "\n";

       for(int posicion=0;posicion<bisiestos.length;posicion++)
           bisiesto = bisiesto + bisiestos[posicion] + "\n";

       JOptionPane.showMessageDialog(null,"Los años introducidos fueron: \n" +anos + "Los bisiestos fueron: \n" + bisiesto);
   }
}


Como ven el programa crea un array del tamaño que desee el usuario y luego pide los valores, los cuales solo pueden ser entre 1980 y 2010, luego entra el switch, y de ahi se escoge la opcion deseada.

Entiendo a la perfeccion casi todo el codigo, a excepcion de la siguiente parte del metodo lectura, que no entiendo bien:

Código (java) [Seleccionar]

String años = "";

       String strAños[];

       for (int posicion = 0; posicion < arreglo.length; posicion++)
       {
           if(arreglo[posicion] % 4 == 0 || arreglo[posicion] % 400 == 0)
           {
               años = años + arreglo[posicion] + (posicion + 1 < arreglo.length ? ";" : "");
           }
       }

       strAños = años.split(";");

       bisiestos = new int[strAños.length];

       for (int posicion = 0; posicion < strAños.length; posicion++)
       {
           bisiestos[posicion] = Integer.parseInt(strAños[posicion]);
       }


Lo que no entiendo de esa parte es para sirve + (posicion + 1 < arreglo.length ? ";" : ""); de la siguiente linea de codigo :

Código (java) [Seleccionar]

 años = años + arreglo[posicion] + (posicion + 1 < arreglo.length ? ";" : "");


Entiendo que es para concatenar el resultado, pero porque entre parentesis la siguiente linea: (posicion + 1 < arreglo.length ? ";" : "") y para que sirve el signo ? y las comillas y los ; y :

Luego tampoco entiendo para que sirve:
Código (java) [Seleccionar]
strAños = años.split(";"); para que años.split(";");???

Fuera de eso entiendo a la perfeccion cada linea de codigo. Alguien puede explicarme porfavor??
#4
Cita de: MCKSys Argentina en  1 Enero 2010, 06:44 AM
:o :o :o :o :o

Pues.... pensé que querías crackear un programa, no toda la internet!!  :xD

Dime: ¿ Cuál es el programa para el que querías crear el Keygen ? (El título del post dice: UN Keygen).




ps no es todo internet jajajajjaja

como dato curioso yo no inicie el post, yo solo comente por el comentario que decia:
Citar....porque nadie te completara el trabajo.

#5
Me cito a mi mismo:

Cita de: camaleon123 en  1 Enero 2010, 04:49 AM
2.- sino se puede lo anterior, se puede convertir de un valor entero a un valor String?

Al fin pude hacerlo!!  ;D :D creo que el año nuevo me depara un nuevo rumbo...

Lo que hice fue crear otra variable entero llamada temp2 que tenga el valor del string temp, de ahi cadena[posicion] toma el valor de temp2.

El codigo listo es:

Código (java) [Seleccionar]

public void leer(int cadena[]) {
       String mostrar="";
    for(int posicion=0;posicion<cadena.length;posicion++) {
        String temp = JOptionPane.showInputDialog(null, "Ingresa 5 valores: \n");
        //comprobamos que el valor ingresado sea distinto que null y si es null
        // regresa al menu principal menu();
        if(temp!= null){
         
        int temp2=Integer.parseInt(temp);

        cadena[posicion] = temp2;

        mostrar=mostrar+cadena[posicion]+"\n";
        //regresamos al menu principal
        }else
        menu();
      }
        JOptionPane.showMessageDialog(null, "Los valores introducidos fueron: \n" + mostrar);
      }
#6
se me acaba de ocurrir dos cosas:

1.- editar el archivo Integer.java en la linea 417 donde dice:
Código (java) [Seleccionar]
        if (s == null) {
            throw new NumberFormatException("null");

y en vez de ponerle null ponerle un 1, asi al cerrar o dar en cancelar estable un valor 1 en vez de null, pero afecta eso a todo java??

2.- sino se puede lo anterior, se puede convertir de un valor entero a un valor String?
#7
Cita de: LEYER en  1 Enero 2010, 01:11 AM
Código (java) [Seleccionar]

   public void leer(int cadena[]) {
       String mostrar="";

    for(int posicion=0;posicion<cadena.length;posicion++) {

        String temp =JOptionPane.showInputDialog(null, "Ingresa 5 valores: \n");

        //comprobamos que el valor ingresado sea distinto que null y si es null
        // regresa al menu principal menu();
        if(temp!= null){

        cadena[posicion] = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingresa 5 valores: \n"));

        mostrar=mostrar+cadena[posicion]+"\n";

        //regresamos al menu principal
        }else

        menu();
      }
        JOptionPane.showMessageDialog(null, "Los valores introducidos fueron: \n" + mostrar);
      }


Probe el codigo y al ingresar al metodo leer, ingreso hasta 10 datos y de ahi me muestra la cadena. Ejemplo: Ingreso 1,2,3,4,5,6,7,8,9,10 y solo me muestra 2,4,6,8,10. Cheque el codigo y pues efectivamente asi es porque primero hay un String que me pide un dato e ingreso 1 y checa que no es null y de ahi entre al verdadero JOption que establece el valor a la cadena, ahi pongo 2, y asi se repite...

La idea me gusto y ando queriendo perfeccionar pero no puedo, ya entendi que el error es porque al cerrar ventana o dar en cancelar asigna "null" a la entrada de datos y sale pero muestra error diciendo que el dato es null.

De ahi se me ocurrio asignar la cadena a un valor entero si no es null pero me dice: "incompatibles types, requerided: int, found: java.lang.String", lo que modifico es lo siguiente:

Código (java) [Seleccionar]

public void leer(int cadena[]) {
        String mostrar="";
    for(int posicion=0;posicion<cadena.length;posicion++) {
         String temp =JOptionPane.showInputDialog(null, "Ingresa 5 valores: \n");
         //comprobamos que el valor ingresado sea distinto que null y si es null
         // regresa al menu principal menu();
         if(temp!= null){
         //asigno que el valor de cadena[posicion] sea igual a lo que tiene temp, pero da error de incompatibilidad de datos.
         cadena[posicion] = temp;
         mostrar=mostrar+cadena[posicion]+"\n";
         //regresamos al menu principal
         }else
        menu();
       }
         JOptionPane.showMessageDialog(null, "Los valores introducidos fueron: \n" + mostrar);
       }


Lo que he tratado es que en vez de:

Código (java) [Seleccionar]
String temp =JOptionPane.showInputDialog(null, "Ingresa 5 valores: \n");

poner:

Código (java) [Seleccionar]
int temp = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingresa 5 valores: \n"));

De esa manera se quita el error en:

Código (java) [Seleccionar]
cadena[posicion]=temp;

pero me muestra un error en:

Código (java) [Seleccionar]
if(temp!=null)

porque es "Incomparable types: int and <nulltype>

creo que esto que quiero hacer es imposible en java...

mientras seguire buscando en google sobre el tipo de dato "null" y como compararlo
#8
Cita de: R.N.A. en 30 Diciembre 2009, 01:51 AM
Cita de: camaleon123 en 30 Diciembre 2009, 01:20 AM
pero como puede uno aprender eso? si buscas en google no hay nada de eso, aunque por estos foros o por amigos encuentras o ves cada herramienta muy buena (aunque no lo sepa usar) que no esta en los resultados de google...

pero como aprender de algo q no hay resultados en google?

Para eso esta la zona de Ingenieria Inversa

Gracias! Echare un vistazo a esa Zona  ;D

Cita de: MCKSys Argentina en 30 Diciembre 2009, 12:48 PM
Si es una generación de serial, DEBES usar Ingeniería Inversa para sacar un serial correcto...  :)

Me interesó mucho este tema, he investigado algo sobre eso hace tiempo y baje un Editor Hexadecimal y Debug Hexadecimal, no creo recordar los nombres, pero sirve eso??
#9
Abril negro / Re: Proyecto Metamorph
1 Enero 2010, 02:49 AM
Cita de: R.N.A. en 30 Diciembre 2009, 01:54 AM
Cita de: camaleon123 en 30 Diciembre 2009, 01:17 AM
Hola a todos soy nuevo en el foro, suena muy bueno el proyecto, pero realmente es otro nivel...

alguien me puede decir en que esta programado, o que necesito aprender para poder desarrollar algo asi?? Manejo C y Java pero nada parecido a este codigo, como le hago? que necesito investigar o q temas buscar? No creo que sea un simple #include studio.h y ya jaja

el proyecto esta hecho en C.

Orale me quede maravillado, pero ha de ser C SUPER-Avanzado, ya que con lo poquito que se y programitas simples que se.

Estudiare mas de C para poder estar a la altura de este proyecto :D
#10
Cita de: LEYER en  1 Enero 2010, 01:11 AM
:) vale
esta comentado para que lo veas bien

Código (java) [Seleccionar]
import javax.swing.JOptionPane;

public class pruebas {
//variables
private  int cadena[]  =  new int[5];
private  int opcion    = 0;

//Metodo Menu principal
public void menu(){
do
{
String select = JOptionPane.showInputDialog(null, "Selecciona tu opcion: \n" +
   "1) Cadena. \n" +
"2) Salir.  ");
opcion=Integer.parseInt(select);
switch(opcion) {
case 1: leer(cadena);
break;
case 2: JOptionPane.showMessageDialog(null, "Adios");
break;
default: JOptionPane.showMessageDialog(null, "Incorrecto");
break;
}
}while(opcion!=2);
}
//Metodo de para leer
   public void leer(int cadena[]) {
       String mostrar="";
    for(int posicion=0;posicion<cadena.length;posicion++) {
        String temp =JOptionPane.showInputDialog(null, "Ingresa 5 valores: \n");
        //comprobamos que el valor ingresado sea distinto que null y si es null
        // regresa al menu principal menu();
        if(temp!= null){
        cadena[posicion] = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingresa 5 valores: \n"));
        mostrar=mostrar+cadena[posicion]+"\n";
        //regresamos al menu principal
        }else
        menu();
      }
        JOptionPane.showMessageDialog(null, "Los valores introducidos fueron: \n" + mostrar);
      }
   public static void main(String arg[]) {
   // instancia de pruebas y llamamos al menu principal
    new pruebas().menu();
   }
}


wooooow MUCHAS GRACIAS!  ;D Eres todo un Master en Java, no encontraba nada en google para hacer eso, solo di con algo sobre  "catch (Exception e) { return null }" pero nada claro.

No se que hora tengas pero: Feliz Año Nuevo 2010!

Nos veremos en el 2010 aqui en el foro, espero y deseo que con menos dudas y mas respuestas mias de java :D

¡Feliz Año Nuevo!