Мой диалог свинга отображает длинную строку по-разному на Mac и в Windows - PullRequest
2 голосов
/ 01 сентября 2009

Мне нужно иметь длинный описательный диалог в части моей программы, и он по-разному отображается в Mac и Windows. На Mac, кажется, слово упаковывает текст и разбивает его на 3 или 4 строки, но на ПК это просто создает действительно длинный диалог. Вот код, который показывает мои проблемы:

public class Test extends JFrame{

import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Test extends JFrame{
private String suggestion = "eee eee eeee eeee eeeerr rrrrr rrrrrrrr rrrrrr " +
        "rrrrrr rrrrrrrrr  rrrrrr rrrrr tttttt ttttttttttt ttttt tttttttttt ttt" +
        " tttt tttttt ttttttttttt reroew uewurkpe jwrkl;ejr kejk ejrk;jewr;jeklr " +
        "jk jre;wlj;ewjr;ej lejrlkejlkejlkjerl  ejlrj kleklr jekl jlek " +
        "rjklejrklejrklekl ";
public void showDialog()
{
           JOptionPane.showMessageDialog(this,
                                  suggestion,
                                  "title",
                                  JOptionPane.INFORMATION_MESSAGE,
                                  null);
}
public static void main(String [] args)
{
    Test test = new Test();
    test.showDialog();
}
}

когда я запускаю это в Windows, он просто создает одну огромную строку текста в длинном диалоговом окне, но в Mac создает несколько строк с диалоговым окном правильного размера.

Ответы [ 2 ]

4 голосов
/ 01 сентября 2009

Компонент JOptionPane имеет свойство только для чтения (MaxCharactersPerLineCount) для максимального количества символов в строке. По умолчанию это Integer.MAX_VALUE. Подклассом JOptionPane вы можете переопределить этот параметр. Изменение этого параметра позволяет компоненту переносить слова, когда сообщение действительно длинное.

http://java.sun.com/developer/JDCTechTips/2004/tt0122.html

1 голос
/ 29 мая 2011

Если вы предпочитаете управлять переносом слов самостоятельно, передайте массив строк в showMessageDialog. Каждая строка будет отображаться на отдельной строке. Это работает на любой платформе.

 private String s1 = "eee eee eeee eeee eeeerr rrrrr rrrrrrrr rrrrrr";
 private String s2 = "rrrrrr rrrrrrrrr  rrrrrr rrrrr tttttt ttttttttttt ttttt tttttttttt ttt";
 private String s3 = "tttt tttttt ttttttttttt reroew uewurkpe jwrkl;ejr kejk ejrk;jewr;jeklr";
 private String s4 = "rjklejrklejrklekl";
 private String s5 = "eee eee eeee eeee eeeerr rrrrr rrrrrrrr rrrrrr";
 private String[] suggestion = new String[] {s1, s2, s3, s4, s5};
 public void showDialog()
{
       JOptionPane.showMessageDialog(this,
                              suggestion,
                              "title",
                              JOptionPane.INFORMATION_MESSAGE,
                              null);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...