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

#11
Puedes declarar un objeto calendar de ésta manera:

Código (=java) [Seleccionar]

Calendar calendar; // objeto Calendar


Éste objeto es solamente un objeto Calendar pero no tiene una instancia de la clase Calendar. Una instancia es la 'escencia' de una clase que se le asigna a un objeto de dicha clase, y un objeto es solamente una variable que es de un 'tipo' de clase. Así que tu puedes instanciar mil y un veces el objeto Calendar y siempre será un solo objeto, ya que al instanciar nuevamente el objeto, la instancia anterior desaparece de memoria.

Código (=java) [Seleccionar]

int i=1;
while(i<1000) {
    calendar = Calendar.getInstance(); // un solo objeto con una sola instancia
}


Pero si haces ésto:

Código (=java) [Seleccionar]

int i=1;
while(i<1000) {
    Calendar calendar = Calendar.getInstance(); // mil objetos Calendar
}



Salu2.
#12
+1 a lo que dice Darhius. Mucho más práctico y funcional es que guardes los resultados en un archivo de texto plano o un archivo XML. Ésto te da la ventaja que los jugadores puedan tener un ranking/puntaje en el juego y que estará guardado en tu HDD manteniendo así los puntajes por tiempo indefinido.

Salu2.
#13
Yo siempre he visto todo esto como una histeria colectiva, pero desde que apareció wikileaks y posteriormente Edward Snowden, soy conciente que fácilmente puede ser verdad las cosas que se comentan en la red.

Citar
A todos los usuarios de Windows nos pueden espiar, pero... y eso que importa?...

Más allá de lo que Microsoft u otra empresa obtenga de tí al espiarte, creo que todo va por la ética profesional. Nadie tiene derecho a espiarte, si ello fuera verdad, ya quiero ver la cara de cagón que pondría Microsoft-Bill Gates por las multimillonarias demandas que los afectados le entablarían..
#14
Es así como dice Darhius, esa excepción que se lanza en el constructor es porque no se ha especificado el modificador de acceso. Cuando omites el modificador de acceso, por defecto es visible para 'las clases del paquete', pero ésto no aplica para la herencia. Un constructor que se hereda siempre de ser public o protected. Si lo dejas así, obviamente puede que tengas una UnsupportedOperationException que es una excepción en tiempo de ejecución (RuntimeException), ya que si en el código has hecho algo como Vehiculo vehiculo = new Vehiculo(), ésto te generará una excepción del tipo ya dicho, ya que se intentará acceder al constructor vacío y no se podrá ya que no está visible para las subclases.

Lo segundo es porque no se puede utilizar en métodos estáticos, una variable no estática. Para solucionar ésto, tan solo agrega el modificador static a la variable/objeto referenciado en el método o quita el modificador static del método.

Salu2.
#15
Java / Re: Ayuda en Java
31 Marzo 2014, 15:39 PM
Hola, primero hay que ajustar algunos detalles, la estructura Mientras es while, la estructura Para es for.

Como ya tienes una cantidad fija de nombres que se ingresarán, no necesitas un centinela, si no un contador.

Código (=java) [Seleccionar]

byte i=0;
while( i < n) {
nombres[i] =JOptionPane.showInputDialog("Ingrese nombre"+(i+1)+":");
i++;
}

Arrays.sort(nombres); // ordena los nombres en orden ascendente
//List<String> milista = Arrays.asList(); convierte un array a list

System.out.println("Numero\tNombre");
for(String i: nombres) {
System.out.println((i+1)+"\t"+i);
}



No puedes usar el método sort de la clase Collections porque éste método solo ordena listas. Primero tendrías que convertir tu array a lista con el método asList(array[]) de la clase Arrays.

Salu2.
#16
¿Te has leído por lo menos la mitad de lo que puse? ¿Cómo quieres que no te lance una excepción (no error) si en cada plataforma intentas ejecutar las dos calculadoras en vez de una sola? Mira bien el código que te puse, primero se detecta la plataforma sobre la cual está corriendo la JVM y de acuerdo a eso se ejecuta la calculadora del sistema operativo residente.

¿Pero que esperan que les hagan todo?

Código (=java) [Seleccionar]

String osName = System.getProperty("os.name").toLowerCase();
Runtime obj = Runtime.getRuntime();

if(osName.indexOf("win") >= 0) {
obj.exec("C:\\WINDOWS\\system32\\CALC.EXE");
}

else if(osName.indexOf("mac") >= 0) {
// codigo para Mac
}

else if(osName.indexOf("nux") >= 0) {
obj.exec("/usr/bin/gnome-calculator")
}


Otra cosa, puedes detectar también el entorno de escritorio con el método getenv:

Código (=java) [Seleccionar]

System.getenv("XDG_CURRENT_DESKTOP"); // retorna Gnome, KDE, etc




Saludos.
#17
Obvio que te lanza una excepción, acostúmbrate a especificar qué error porque en Java hay muchas exepciones y errores (los errores siempre te quiebran la aplicación), por que no pones un condicional para ejecutar si es determinada plataforma, la ruta de la calculadora.

Para saber la plataforma (SO) sobre la cual está corriendo Java, se hace uso del método getProperty("os.name") de la clase System. Ejemplo:

Código (=java) [Seleccionar]

String osName = System.getProperty("os.name").toLowerCase();

if(osName.indexOf("win") >= 0) {
// codigo para windows
}

else if(osName.indexOf("mac") >= 0) {
// codigo para Mac
}

else if(osName.indexOf("nux") >= 0) {
// codigo para Linux
}


El algoritmo es sencillo, indexOf devuelve el índice del comienzo del parámetro que le enviamos (una subcadena String o un character), caso contrario devuelve -1. Por ésta razón, colocamos >=0 ya que si el valor de retorno es mayor o igual a cero quiere decir que la subcadena o character existe dentro de la cadena.
#18
Programación General / Re: Ejercicio Java
29 Marzo 2014, 13:03 PM
Hola, en primera arriba tienes la sección Java, ¿no pueden tomarse la molestia de buscar un minuto?

Si hubieras buscado, hubieras visto en la sección Java un tema idéntico al que ya se le dió suficiente ayuda para ser solucionado.

Segundo, usa las etiquetas GeShi que están en el editor y que casi todos los foros la tienen.

Tema -> Link al tema.

Salu2.
#19
Java / Re: Ayuda ServidorAVL
28 Marzo 2014, 13:33 PM
Igual ese servidor es pobrísimo, el SO sólamente debe consumir un tercio, el JRE otro poco, otras aplicaciones otro poco, te queda muy poca ram dedicada a la aplicación. Anyway, cuando se te cae el server, ¿lanza algun error como OutOfMemoryEror o StackOverFlow?
#20
Nunca he filtrado en Swing por columna, pero si por fila. Para ésto primero tienes que poner tu JTextField en modo escucha:

Código (=java) [Seleccionar]

textField.getDocument().addDocumentListener(new DocumentListener() {
  public void changedUpdate(DocumentEvent e) {
    newFilter();
  }
  public void removeUpdate(DocumentEvent e) {
    newFilter();
  }
  public void insertUpdate(DocumentEvent e) {
    newFilter();
  }

});

private void newFilter() 

    // filtro de fila / filter of row
    RowFilter<model,Object> rf = null;   
    Try 
    { 
        rf = RowFilter.regexFilter("^" + jTextField.getText(), 0);   
        // use regular expression
    } 
    catch (java.util.regex.PatternSyntaxException e) 
    { 
        return; 
    } 
    sorter.setRowFilter(rf);  // filtra la tabla / filter the table
}


Luego tienes que usar el modelo JtableRowSorter:

Código (=java) [Seleccionar]

    TableModel model = new TableModel();
     final JTable table = new JTable(model);
    final TableRowSorter<TableModel> sorter = new TableRowSorter<>(model);
    table.setRowSorter(sorter);
    JScrollPane pane = new JScrollPane(table);