Java 我的swing对话框在Mac和Windows上以不同的方式显示长字符串
我需要有一个很长的描述性对话框在我的程序的一部分,它显示在mac和windows不同。在mac电脑上,word似乎将文本包装成3行或4行,但在PC上,它只是创建了一个很长的对话框。下面是一些显示我的问题的代码:Java 我的swing对话框在Mac和Windows上以不同的方式显示长字符串,java,dialog,Java,Dialog,我需要有一个很长的描述性对话框在我的程序的一部分,它显示在mac和windows不同。在mac电脑上,word似乎将文本包装成3行或4行,但在PC上,它只是创建了一个很长的对话框。下面是一些显示我的问题的代码: public class Test extends JFrame{ import javax.swing.JFrame; import javax.swing.JOptionPane; public class Test extends JFrame{ private String s
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上,它创建了多行大小合适的对话框 JOptionPane组件具有一个只读属性(MaxCharactersPerLineCount),用于每行的最大字符数。默认情况下,这是Integer.MAX_值。通过子类化JOptionPane,可以覆盖此设置。更改此设置允许组件在消息非常长时自动换行
如果您希望自己控制自动换行,请将字符串数组传递给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);
}
有趣的是,它在mac和pc上的不同之处在于,Swing将在mac和windows/linux之间做到这一点。在之前的一个项目中,我为在mac电脑上正常工作付出了巨大的努力,尤其是在文本显示方面。我并不奇怪它的工作原理不同。