Omet navegació

6.1.- JOptionPane

Swing ens proporciona una classe per a fer finestres de diàleg estàndar, sense haver de construir un JDialog. Es tracta de JOptionPane, que ens permet crear diàlegs senzills, com tantes i tantes vegades voldrem construir. Aquestos diàlegs seran modals, i podem fer-ne d'unes quantes maneres:

Ho farem sempre sobre l'últim exemple, el del diàleg: un botó que quan l'apretem traurà un missatge. Tan sols modificarem la línia 36.

Diàlegs de Missatge

Senzillament trauen un missatge i un botó per a tancar el diàleg.

JOptionPane.showMessageDialog(this, "Hola")

Opcionalment podem posar també un títol i canviar el dibuixet, per a que en compte d'informació indique error, pregunta, ...

JOptionPane.showMessageDialog(this, "Hola", "Diàleg",JOptionPane.ERROR_MESSAGE)

Els valors per al símbol poden ser ERROR_MESSAGE, INFORMATION_MESSAGE, QUESTION_MESSAGE, ...

Missatge de confimació; showConfirmDialog()

showConfirmDialog() ens permet mostrar un diàleg amb un comentari i uns botons de Sí, No , Cancel·lar. Aquest mètode torna un valor, que serà l'opció triada.

En aquest exemple mostrem per l'eixida estàndar l'opció triada:

		boto1.addActionListener {
			println("Obrint diàleg")
			when(JOptionPane.showConfirmDialog(this,"D'acord?")){
				JOptionPane.OK_OPTION -> { println("Sí") }
				JOptionPane.NO_OPTION -> { println("No") }
				JOptionPane.CANCEL_OPTION -> { println("Cancel·lat") }
			}
		}

Els botons que volem que apareguen són configurables.

Diàleg d'entrada: showInputDialog()

Per a poder introduir un text, amb dos botons, d'acceptació i cancel·lació. El mètode retornarà un string amb el text introduït (si s'ha apretat cancel·lar, aquest string serà nul).

		boto1.addActionListener {
			val nom = JOptionPane.showInputDialog("Introdueix el teu nom")
			println("Hola, " + nom);
		}