sirve showmessagedialog showinputdialog showconfirmdialog que personalizar para mostrar mensaje ejemplos java html swing exception joptionpane

showmessagedialog - mostrar mensaje en java netbeans



Ajuste de texto en JOptionPane? (2)

Estoy usando el siguiente código para mostrar un mensaje de error en mi aplicación de swing

try { ... } catch (Exception exp) { JOptionPane.showMessageDialog(this, exp.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); }

El ancho del diálogo de error se alarga dependiendo del mensaje. ¿Hay alguna forma de envolver el mensaje de error?


Agregue su mensaje a un componente de texto que pueda JEditorPane , como JEditorPane , luego especifique el panel del editor como el message a su JOptionPane . Consulte Cómo utilizar paneles de editor y paneles de texto y Cómo crear cuadros de diálogo para ver ejemplos.

Adición: Como alternativa al envoltorio, considere un enfoque orientado a la línea en un panel de desplazamiento, como se muestra a continuación.

f.add(new JButton(new AbstractAction("Oh noes!") { @Override public void actionPerformed(ActionEvent action) { try { throw new UnsupportedOperationException("Not supported yet."); } catch (Exception e) { StringBuilder sb = new StringBuilder("Error: "); sb.append(e.getMessage()); sb.append("/n"); for (StackTraceElement ste : e.getStackTrace()) { sb.append(ste.toString()); sb.append("/n"); } JTextArea jta = new JTextArea(sb.toString()); JScrollPane jsp = new JScrollPane(jta){ @Override public Dimension getPreferredSize() { return new Dimension(480, 320); } }; JOptionPane.showMessageDialog( null, jsp, "Error", JOptionPane.ERROR_MESSAGE); } } }));


Un JOptionPane usará un JLabel para mostrar el texto por defecto. Una etiqueta formateará HTML. Establezca el ancho máximo en CSS.

JOptionPane.showMessageDialog( this, "<html><body><p style=''width: 200px;''>"+exp.getMessage()+"</p></body></html>", "Error", JOptionPane.ERROR_MESSAGE);

De manera más general, consulte Cómo usar HTML en Swing Components , así como este ejemplo simple de uso de HTML en JLabel .