2011-10-08 16 views
6
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()); 
     } 

W przypadku wystąpienia błędu wyświetla długi komunikat JOptionPane o długości większej niż szerokość ekranu komputera. Jak mogę podzielić e.toString() na dwie lub więcej części.Aby podzielić wiadomość na dwie lub więcej linii w JOptionPane

+1

Put nowej linii. – adatapost

Odpowiedz

21

enter image description here

import java.awt.*; 
import javax.swing.*; 

class FixedWidthLabel { 

    public static void main(String[] args) { 

     Runnable r = new Runnable() { 
      public void run() { 
       String pt1 = "<html><body width='"; 
       String pt2 = 
        "'><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 " + 
        ""; 
       String pt3 = " pixels."; 

       JPanel p = new JPanel(new BorderLayout()); 

       int width = 175; 
       String s = pt1 + width + pt2 + width + pt3 ; 

       JOptionPane.showMessageDialog(null, s); 
      } 
     }; 
     SwingUtilities.invokeLater(r); 
    } 
} 
3

Musisz użyć \n, aby przerwać ciąg znaków w różnych liniach. Albo można:

Innym sposobem wykonania tego zadania jest do podklasy klasy JOptionPane i zastąpić getMaxCharactersPerLineCount tak, że zwraca liczba znaków, które chcesz reprezentować jako maksimum dla jednego wiersza tekstu .

http://ninopriore.com/2009/07/12/the-java-joptionpane-class/ (martwy link, patrz archived copy).

+0

"Line.separator" (który może nie być \ n BTW) działa tylko wtedy, gdy tekst jest wstawiany do komponentu wieloliniowego, takiego jak 'JTextArea'. Komponent używany do wyświetlania 'String' w okienku opcji jest' JLabel'. –

0

mam ustawienie limitu znaków, a następnie szukać ostatniej spacji w tym środowisku i napisać „\ n” tam. (Albo wymuszam "\ n", jeśli nie ma spacji). Tak:

/** Force-inserts line breaks into an otherwise human-unfriendly long string. 
* */ 
private String breakLongString(String input, int charLimit) 
{ 
    String output = "", rest = input; 
    int i = 0; 

    // validate. 
    if (rest.length() < charLimit) { 
     output = rest; 
    } 
    else if ( !rest.equals("") && (rest != null) ) // safety precaution 
    { 
     do 
     { // search the next index of interest. 
      i = rest.lastIndexOf(" ", charLimit) +1; 
      if (i == -1) 
       i = charLimit; 
      if (i > rest.length()) 
       i = rest.length(); 

      // break! 
      output += rest.substring(0,i) +"\n"; 
      rest = rest.substring(i); 
     } 
     while ( (rest.length() > charLimit) ); 
     output += rest; 
    } 

    return output; 
} 

A ja nazywam go tak jak to w (TRY) -catch Wspornik:

JOptionPane.showMessageDialog(
    null, 
    "Could not create table 't_rennwagen'.\n\n" 
    + breakLongString(stmt.getWarnings().toString(), 100), 
    "SQL Error", 
    JOptionPane.ERROR_MESSAGE 
); 
1

podobny do Andrew Thomson „s odpowiedź, kod następujący pozwala ci załadować plik z HTML katalog główny projektu i wyświetlać go w postaci JOptionPane. Zauważ, że musisz dodać Maven dependency for Apache Commons IO. Również użycie HTMLCompressor jest dobrym pomysłem, jeśli chcesz odczytać sformatowany kod HTML z pliku bez przerywania renderowania.

import com.googlecode.htmlcompressor.compressor.HtmlCompressor; 
import org.apache.commons.io.FileUtils; 

import javax.swing.*; 
import java.io.File; 
import java.io.IOException; 

public class HTMLRenderingTest 
{ 
    public static void main(String[] arguments) throws IOException 
    { 
     String html = FileUtils.readFileToString(new File("document.html")); 
     HtmlCompressor compressor = new HtmlCompressor(); 
     html = compressor.compress(html); 
     JOptionPane.showMessageDialog(null, html); 
    } 
} 

To pozwala ci zarządzać kod HTML lepiej niż w Javie Strings.

Nie zapomnij utworzyć plik o nazwie document.html o następującej treści:

<html> 
<body width='175'><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 175 pixels. 

Wynik: znak (\ n)

Powiązane problemy