Search code examples
javaswingnewlinejoptionpane

To break a message in two or more lines in JOptionPane


try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        String connectionUrl = "jdbc:sqlserver://"+hostName.getText()+";" +
        "databaseName="+dbName.getText()+";user="+userName.getText()+";password="+password.getText()+";";
        Connection con = DriverManager.getConnection(connectionUrl);
        if(con!=null){JOptionPane.showMessageDialog(this, "Connection Established");}
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(this, e);
            //System.out.println("SQL Exception: "+ e.toString());
        } catch (ClassNotFoundException cE) {
            //System.out.println("Class Not Found Exception: "+ cE.toString());
             JOptionPane.showMessageDialog(this, cE.toString());
        }

When there is an error it shows a long JOptionPane message box that is longer than the width of the computer screen. How can I break e.toString() into two or more parts.


Solution

  • enter image description here

    import javax.swing.*;
    
    class FixedWidthLabel {
    
        public static void main(String[] args) {
            Runnable r = () -> {
                String html = "<html><body width='%1s'><h1>Label Width</h1>"
                    + "<p>Many Swing components support HTML 3.2 &amp; "
                    + "(simple) CSS.  By setting a body width we can cause "
                    + "the component to find the natural height needed to "
                    + "display the component.<br><br>"
                    + "<p>The body width in this text is set to %1s pixels.";
                // change to alter the width 
                int w = 175;
    
                JOptionPane.showMessageDialog(null, String.format(html, w, w));
            };
            SwingUtilities.invokeLater(r);
        }
    }