Sto utilizzando il metodo JOptionPane.showMessageDialog (null, e, "Nome non valido", JOptionPane.ERROR_MESSAGE) per visualizzare l'eccezione estesa dalla classe Exception. Ma la finestra Pop non viene visualizzata a meno che e fino a quando premo Alt + tab. Quale può essere il motivo? Di seguito è riportato lo snippet. Suggeriscimi qualcosaPiccolo problema durante l'utilizzo di JOptionPane
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.io.*;
class NameInvalidException extends Exception {
/**
* Invalid Name
*/
String invName;
public NameInvalidException() {
super();
}
public NameInvalidException(String s) {
invName = s;
}
}
class SmallException extends Exception {
/**
* Short Name
*/
String sName;
public SmallException() {
super();
}
public SmallException(String s) {
sName = s;
}
}
public class ValidName {
public static void main(String arr[]) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
System.out.println("Enter the name: ");
String name = br.readLine();
checkName(name);
} catch (IOException e) {
System.out.println(e);
}
}// end main
static void checkName(String name) {
try {
String sarr[] = name.split(" ");
if (sarr.length != 3)
throw new SmallException(name);
for (int j = 0; j < 3; j++) {
System.out.println("in j loop");
if (sarr[j].length() < 3) {
throw new SmallException();
}
}
for (int i = 0; i < name.length(); i++) {
char ch = name.charAt(i);
if (Character.isLetter(ch) || Character.isWhitespace(ch))
System.out.println("ok " + ch);
else
throw new NameInvalidException();
}// end for
}// end try
catch (NameInvalidException e) {
JOptionPane.showMessageDialog(null, e.toString(), "Invalid Name",
JOptionPane.ERROR_MESSAGE);
System.out.println(e);
} catch (SmallException es) {
JOptionPane.showMessageDialog(null, es.toString(), "Invalid Name",
JOptionPane.ERROR_MESSAGE);
}
}// end checkName(name)
}
Grazie! :), ho provato a eseguire il codice precedente.Inizialmente mi ha dato errore per metodo "createDialog (String)" quindi facendo riferimento alla documentazione Ho provato per createDialog (null, String) dove null sta per componente padre che non è presente nel mio frammento. Ha funzionato bene. – Supereme
Forse perché il metodo di convenienza che ho usato è stato introdotto con Java 1.6 –