package org.mindswap.swoop.utils.ui; import java.awt.Dimension; import java.awt.Frame; import java.io.ByteArrayOutputStream; import java.io.PrintWriter; import javax.swing.JDialog; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTextArea; import org.mindswap.swoop.SwoopFrame; public class ExceptionDialog extends JDialog { public static JDialog createDialog(Frame parent, String message, Exception error) { // Get full stack trace. ByteArrayOutputStream messageStream = new ByteArrayOutputStream(); PrintWriter pw = new PrintWriter(messageStream); error.printStackTrace(pw); pw.close(); JTextArea errorText = new JTextArea(messageStream.toString()); //errorText.setPreferredSize(new Dimension(300,300)); errorText.setEditable(false); JScrollPane textPane = new JScrollPane(errorText); textPane.setPreferredSize(new Dimension(500, 400)); //JOptionPane.showMessageDialog(SwoopFrame.this, textPane, // "Cannot load ontology", JOptionPane.ERROR_MESSAGE); JOptionPane warning = new JOptionPane(textPane, JOptionPane.ERROR_MESSAGE); JDialog dialog = warning.createDialog(parent, message); dialog.getContentPane().add(warning); dialog.setResizable(true); return dialog; } }