2012-04-12 11 views
3
JOptionPane.showConfirmDialog(this, 
           message, 
           "title", 
           JOptionPane.YES_NO_OPTION, 
           JOptionPane.WARNING_MESSAGE); 

Die Nachricht kann 10 Zeilen und Nachricht 500 Zeilen sein. Es ändert sich dynamisch. Ich möchte eine Bildlaufleiste implementieren, wenn die Nachricht die Bildschirmhöhe überschreitet.JOptionPane.showConfirmDialog erlischt Bildschirm, wenn die Nachricht groß ist

Also habe ich versucht:

JTextArea textArea = new JTextArea (message); 
JscrollPane scrollPane = new JScrollPane(textArea,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
JOptionPane.showConfirmDialog(this, 
           scrollPane, 
           "title", 
           JOptionPane.YES_NO_OPTION, 
           JOptionPane.WARNING_MESSAGE); 

Dies öffnet einen Dialog und eine Bildlaufleiste in Windows und es funktioniert gut, aber in Mac-OS den Dialog geht aus dem Bildschirm.

Kann mir jemand helfen?

Antwort

0

Sie können die bevorzugte Größe für Ihre scrollPane einstellen, bevor Sie den Dialog zeigt seine Größe zu begrenzen:

scrollPane.setPreferredSize(new Dimension(400, 200)); 

Die Dimension kann zu verwenden, um auf die Bildschirmgröße basieren, die Sie wie folgt abrufen:

Toolkit.getDefaultToolkit().getScreenSize() 

Beachten Sie, dass ich dies nicht auf anderen Plattformen als Mac OS X getestet habe.

Verwandte Themen