Java - Ayuda con el JOptionPane.showMessageDialog();

 
Vista:
sin imagen de perfil
Val: 13
Ha aumentado su posición en 7 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con el JOptionPane.showMessageDialog();

Publicado por Xiaolin (6 intervenciones) el 25/03/2019 19:57:11
Hola, tengo un problema con este código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package banco;
 
import java.util.Scanner;
import javax.swing.*;
 
public class Banco extends JFrame {
 
    public static void main(String[] args) {
 
        int numCuenta;
        float saldo, suma = 0;
        String informeFinal = "\nLista y estado de cuentas: \n";
        Scanner teclado = new Scanner(System.in);
 
 
        do {
 
            System.out.print("Introduzca cuenta: ");
            numCuenta = teclado.nextInt();
 
            if (numCuenta != 0) {
                System.out.print("Introduzca Saldo: ");
 
                saldo = teclado.nextFloat();
 
 
                informeFinal += ("** Num. cuenta: " + numCuenta);
                if (saldo > 0) {
                    informeFinal += (" - Saldo ACREEDOR \n");
                    suma += saldo;
                } else if (saldo < 0) {
                    informeFinal += (" - Saldo DEUDOR \n");
                } else {
                    informeFinal += (" - Saldo NULO \n");
                }
            }
 
 
 
 
        } while (numCuenta != 0);
 
        JOptionPane.showConfirmDialog(null, "Saldo total: " + suma); //AQUÍ ESTA EL ERROR.
        System.out.println(informeFinal);
 
    }
 
}

el problema surge en la línea 43, no se ejecuta el JOptionPane. ¿Alguien me explica porque no aparece?. Solo funciona si lo pongo antes del bucle do while().

Gracias. Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con el JOptionPane.showMessageDialog();

Publicado por Kabuto (1381 intervenciones) el 25/03/2019 21:54:01
Hola, estoy alucinando un poquito yo también. te funciona, pero verás....

Lo he probado, y tampoco me sale. De hecho el programa no termina, se queda esperando que realicemos una acción. Pero claro, si no sale en pantalla el JOptionPane, no podemos hacer ninguna acción...

Como tú dices, si lo ponemos antes del bucle, sí funciona.

De hecho, si antes del bucle ponemos otro JOptionPane distinto por probar, se muestra este de prueba, Y AHORA TAMBIÉN SE MUESTRA EL QUE HAY DESPUÉS DEL BUCLE.

Me parece tan loco que me he puesto a comprobar con el debugger de Eclipse.
El debugger me muestra que SÍ SE ABRE el Thread secundario de la clase AWT que se encarga de mostrar el JOptionPane, pero no se ve en pantalla.

¿Por qué? ¿Cómo es posible?

Pues al final me he dado cuenta de que SÍ SE MUESTRA. Lo que pasa es que se queda DETRÁS de la ventana de Eclipse Ja ja...
Minimizando el IDE de Eclipse o haciendo Alt+Tab me encuentro con el dichoso JOptionPane.

O sea, que sí sale. Pero en lugar de ponerse delante como es normal, se queda detrás.

NO lo entiendo, desconozco el motivo, nunca me ha pasado esto, y llevo ya unos añitos haciendo cositas con Java.

Ni tampoco entiendo por qué poniendolo antes del bucle sale delante del IDE de forma visible, y en cambio tras el bucle se queda detrás dando la impresión de que no se está mostrando.

Pues eso, que flipo...



POR CIERTO:

Para mostrar un "simple" JOptionPane, no necesitas que tu clase herede de la clase JFrame.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 13
Ha aumentado su posición en 7 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con el JOptionPane.showMessageDialog();

Publicado por Xiaolin (6 intervenciones) el 25/03/2019 23:54:47
Ostia pues si tienes razón!! jajaja. Puse JFrame porque ya estaba desesperado en saber porque no salía el diálogo... Muchas gracias por tu aporte! Hay cosas que jamás entenderé porque suceden estas cosas jajaja.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con el JOptionPane.showMessageDialog();

Publicado por Bryant (1 intervención) el 19/08/2020 00:40:50
Hola he estado porvando un poco con NeatBeans y me sucede lo mismo, este problema suele pasar cuando pido que introduzca un dato por consola y despues llamo a un JOptionPane, ya que si el JOptionPane es llamado antes del Scanner este problema no sucede, si alguien tiene idea de como resolverlo, aiuda xd
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con el JOptionPane.showMessageDialog();

Publicado por koldo (1 intervención) el 15/02/2023 23:44:37
Mira en propiedades de jframe, si esta activado "AlwaysOn top no sale el JOptionpane, se queda en segundo plano.
Deshabilitando esta opcion a mi me funciono correctamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar