我喜欢 JOptionPane 的便利性,但不喜欢它不换行的事实。所以我决定按如下方式实现这个问题的答案:
public static void main(String[] args)
{
String text = "one two three four five six seven eight nine ten ";
text = text + text + text + text + text
JTextArea textArea = new JTextArea(text);
textArea.setColumns(30);
textArea.setLineWrap( true );
textArea.setWrapStyleWord( true );
textArea.append(text);
textArea.setSize(textArea.getPreferredSize().width, 1); //Explanation for this line in the comments of the linked thread
JOptionPane.showMessageDialog(
null, textArea, "Not Truncated!", JOptionPane.WARNING_MESSAGE);
}
这在 Mac OS X 上运行良好:
但在 Windows 8 上不起作用,因为随着 JTextArea 的高度随着多行的增加而增加,窗口不会调整大小,因此将按钮推开:
有什么我做错了吗?两个平台上的 Java Swing 行为是否不同?我该如何解决这个问题?