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 - Usuario Invitado

#41
Java / Re: Botón y cuadros de texto
12 Julio 2015, 23:39 PM
Lo que pasa es que Oracle ya no hace binarios de JavaFX Scene Builder. El source está disponible, pero tienes que compilarlo. Gluon lo empaqueta ya para distintas arquitecturas.

Saludos.
#42
Java / Re: Ayuda ejercicio vectores
12 Julio 2015, 23:19 PM
Te pongo un ejemplo muy simple con method chaining (encadenamiento de métodos) que es útil aquí:

Código (java) [Seleccionar]
public class ArrayGenerator {
    private double[] numbers;
    private double minor;
    private double major;
    final static Scanner READER;
    final static Random GENERATOR;

    public ArrayGenerator() {
READER = new Scanner(System.in);
GENERATOR = new Random();
    }
    public ArrayGenerator fillArray() throws ArrayOutOfBoundsException {
System.out.println("¿Cuántos números desea generar?");
byte quantity = READER.nextByte();

        if(quantity > 15) {
    throw new ArrayOutOfBoundsException("El arreglo debe tener máximo 15 elementos");
}
numbers = new Double[quantity];
for(byte i=0; i<quantity; i++) {
    numbers[i] = GENERATOR.nextDouble();
}
return this;
    }
    public ArrayGenerator major() {
major = numbers[0]; // asume 1er elemento como mayor
for(double number : numbers) {
    major = (number > major) ? number : major;
        }
return this;
    }
    public ArrayGenerator minor() {
minor = numbers[0]; // asume 1er elemento como menor
for(double number : numbers) {
    minor = (number < minor) ? number : minor;
        }
return this;
    }
    public double getMajor() {
return major;
    }
    public double getMinor() {
return minor;
    }
}


En la clase donde se instanciará ArrayGenerator:

Código (java) [Seleccionar]

try {
    ArrayGenerator arrayGenerator =
new ArrayGenerator()
.fillArray()
.major()
.minor();

System.out.println("El número mayor es: " + arrayGenerator.getMajor());
System.out.println("El número menor es: " + arrayGenerator.getMinor());
} catch(ArrayOutOfBoundsException ex) {
    // el mensaje es el que le pasamos por parámetro al constructor de la excepción
    // cuando lo lanzamos si es que se elige ingresar más de 15 números. El mensaje
    // es: 'El arreglo debe tener máximo 15 elementos'
    System.err.println(ex.getMessage());
}
#43
Java / Re: Botón y cuadros de texto
12 Julio 2015, 22:42 PM
Post actualizado. He puesto el link de descarga.
#44
Java / Re: Botón y cuadros de texto
11 Julio 2015, 19:10 PM
¿Y porqué mejor no empezamos a usar de una vez los estándares modernos?, ¿Por qué optar por Swing si tienes JavaFX?

Ventajas de JavaFX

  • Te da una forma de trabajar que es MVC (Modelo - Vista - Controlador).
  • Las vistas se escriben en FXML (XML) y cada vista tiene un controlador.
  • Inyección de dependencias (controles UI) en el controlador.
  • Soporte para animaciones 2D y 3D.
  • Componentes nuevos, como WebBrowser (un navegador integrado en tu aplicación).
  • Soporte para customización de controles con CSS.
  • API mejor estructurada y aplicando los últimos estándares (API moderna, Swing != moderno).
  • Ejecución en el navegador por medio de JNLP
  • Muchos Listeners para tus controles.
  • Y mucho más.

    Preguntas frecuentes

    CitarSi las vistas se hacen en XML es demasiado difícil crear una interfaz gráfica.

    Falso. Para construir las interfaces tienes a JavaFX Scene Builder

    CitarSi uso JavaFX no puedo usar Swing en la misma aplicación

    Falso. JavaFX se integra bien con Swing (lo que debes preguntarte es para qué necesitas Swing dentro de JavaFX)

    Recursos

    Tutorial JavaFX con Java 8
    Oracle JavaFX 8 overview
    Scene Builder
#45
Java / Re: JPQL Ayudar profavor.
10 Julio 2015, 21:46 PM
Ya te respondí en el tema original.
#46
Java / Re: JPA Ayuda plz.
10 Julio 2015, 20:37 PM
Intentemos lo siguiente, ejecutemos la query nativa, es decir, SQL no JPQL. Primero, necesitamos envolver los resultados de las dos tablas y nos apoyaremos en @SqlResultSetMapping:

Código (java) [Seleccionar]

@Entity
@SqlResultSetMapping(name="UsuarioCuestionarioResults",
    entities={
@EntityResult(entityClass=tu.paquete.Usuario.class)
@EntityResult(entityClass=tu.paquete.Cuestionario.class)
    }
)
public class Usuario implements Serializable {
...
}


donde, name es el indentificador. El conjunto entities especifica las clases (tablas) que devolverá la consulta nativa, que son 2: usuarios y cuestionarios.

Ahora, procedemos a llamarlo:

Código (java) [Seleccionar]

String queryStr = "SELECT u.nombre, c.nombre FROM usuarios u, cuestionarios c,
INNER JOIN usuarios_cuestionarios uc ON uc.id_usuario = u.id_usuario,
INNER JOIN uc.id_cuestionario = c.id_cuestionario
WHERE c.id = 2";


Query q = em.createNativeQuery(queryStr, "UsuarioCuestionarioResults");
List<Object[]> results = (List<Object[]>) q.getResult();

for(Object[] record = results) {
    Usuario u = (Usuario) record[0];
    Cuestionario c = (Cuestionario)[1];

    // hacer algo
}


Como ves, llamamos al ResultSetMapping por su identificador. Las nativeQueries devuelven arreglos de objetos, éstos, dependen de las clases (tablas) que devuelve la consulta. Por eso, cada ítem de la lista devuelta, tendrá 2 clases ya mapeadas: Usuario y Cuestionario.

Ahora ya podrás mostrar los datos.

PD: Posiblemente hayan errores, pero serán mínimos, en ese caso, sería bueno que busques también por tu cuenta.
#47
Java / Re: JPA Ayuda plz.
9 Julio 2015, 22:12 PM
Primero debes empezar la transacción:

Código (java) [Seleccionar]
EntityManager em=emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
...
em.persist(u);
em.persist(c);
tx.commit();


Otra cosa, por lógica, si te da el error debes de ponerlo también para que podamos verlo, de otra manera, estamos adivinando.

Saludos.
#48
+1 a Baal. Analiza bien el problema propuesto antes de siquiera hacer un System.out.println. Primero analiza y resuelve el problema en pseudocódigo, o con dibujos, como sea, lo importante es que agilices tu capacidad analítica.

El código de Baal es correcto para tu propósito:

Código (java) [Seleccionar]

// va bajando de 5 a 1
for(byte i=5; i<=1; i--) {
    // recorre de 1 hasta 5. Como i va bajando, éste for
    // imprimirá primero hasta 5, luego hasta 4 y así...
    for(byte j=1; j<=5; j++) {
        System.out.print(j);
    }
    System.out.println();
}
#49
Java / Re: Subir archivos con Servlet
6 Julio 2015, 15:34 PM
Go go go Baal, ya te falta poco para dar el salto a Java EE!. Sigue estudiando bro.
#50
Obtienes la imagen, la conviertes a blob y la asignas el blob al atributo src del IMG:

Código (javascript) [Seleccionar]
var file = document.querySelector('#imgInput').files[0];
var blob = URL.createObjectURL(file);
document.querySelector('#img').src = blob;


ver demo