|
Mostrar Mensajes
|
Páginas: [1] 2
|
2
|
Programación / Java / Arrays bidimensionales en un JText
|
en: 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: 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: import javax.swing.JOptionPane; import javax.swing.JTextArea; public class jtext { public static void main (String arg []) { int matriz[][]=new int[3][3]; for(int fila=0;fila<matriz.length;fila++) for(int columna=0;columna<matriz.length;columna++) { datos=datos+matriz[fila][columna]+"\n"; } 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
|
Programación / Java / Explicacion de un simple ejercicio
|
en: 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: 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; 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--; } } 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[]) { 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[]) { 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[]) { 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: 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 : 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: 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??
|
|
|
5
|
Programación / Java / Re: Valor no Iniciallizado en Arrays (cadenas) dentro de un Switch
|
en: 1 Enero 2010, 05:23 am
|
Me cito a mi mismo: 2.- sino se puede lo anterior, se puede convertir de un valor entero a un valor String?
Al fin pude hacerlo!! 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: public void leer(int cadena[]) { for(int posicion=0;posicion<cadena.length;posicion++) { //comprobamos que el valor ingresado sea distinto que null y si es null // regresa al menu principal menu(); if(temp!= null){ cadena[posicion] = temp2; mostrar=mostrar+cadena[posicion]+"\n"; //regresamos al menu principal }else menu(); } JOptionPane. showMessageDialog(null, "Los valores introducidos fueron: \n" + mostrar ); }
|
|
|
6
|
Programación / Java / Re: Valor no Iniciallizado en Arrays (cadenas) dentro de un Switch
|
en: 1 Enero 2010, 04:49 am
|
se me acaba de ocurrir dos cosas: 1.- editar el archivo Integer.java en la linea 417 donde dice: if (s == 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
|
Programación / Java / Re: Valor no Iniciallizado en Arrays (cadenas) dentro de un Switch
|
en: 1 Enero 2010, 04:42 am
|
public void leer(int cadena[]) { for(int posicion=0;posicion<cadena.length;posicion++) { //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: public void leer(int cadena[]) { for(int posicion=0;posicion<cadena.length;posicion++) { //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:
poner:
De esa manera se quita el error en: cadena[posicion]=temp;
pero me muestra un error en: 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
|
Programación / Ingeniería Inversa / Re: Ayuda para Crear un Keygen.
|
en: 1 Enero 2010, 03:41 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 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
|
Seguridad Informática / Abril negro / Re: Proyecto Metamorph
|
en: 1 Enero 2010, 02:49 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
|
|
|
10
|
Programación / Java / Re: Valor no Iniciallizado en Arrays (cadenas) dentro de un Switch
|
en: 1 Enero 2010, 01:32 am
|
vale esta comentado para que lo veas bien 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 { "1) Cadena. \n" + "2) Salir. "); switch(opcion) { case 1: leer(cadena); break; break; default: JOptionPane. showMessageDialog(null, "Incorrecto"); break; } }while(opcion!=2); } //Metodo de para leer public void leer(int cadena[]) { for(int posicion=0;posicion<cadena.length;posicion++) { //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! 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 ¡Feliz Año Nuevo!
|
|
|
|
|
|
|