Java 如何保留从 String 到 JLabel 的换行符?
Java how to preserve newline from String to JLabel?
JLabel newLabel = new JLabel();
String a = b;//b is String from database.
newLabel.setText(a);
我需要生成从我的数据库中提取的包含多行的文本,但是当我将它们放入标签时,所有文本都变成了同一行。
我尝试使用 JTextArea 并且它可以工作,但是由于某种原因它弄乱了 1 列 BoxLayout 面板中所有其他组件的对齐方式......我希望所有内容都向左对齐。任何帮助将非常感激!谢谢
however, for some reason it messed with all the other component's alignment in a 1 column BoxLayout panel
与各个组件的setAlignmentX(...)
方法有关。
JLabel 使用 0.0f(用于左对齐)。 JTextArea 和 JScrollPane 使用 0.5f(用于中心对齐)。
使用具有不同对齐方式的组件将在使用 BoxLayout
时导致对齐问题。
解决方案是更改文本区域或滚动窗格的对齐方式(无论您添加到 BoxLayout 的哪个组件)。
所以基本代码是:
JLabel label = new JLabel(...);
JTextArea textArea = new JTextArea(...);
textArea.setAlignmentX(0.0f);
JPanel panel = new BoxLayout(...);
panel.add(label);
panel.add(textArea);
现在两个组件都将左对齐。
JLabel newLabel = new JLabel();
String a = b;//b is String from database.
newLabel.setText(a);
我需要生成从我的数据库中提取的包含多行的文本,但是当我将它们放入标签时,所有文本都变成了同一行。 我尝试使用 JTextArea 并且它可以工作,但是由于某种原因它弄乱了 1 列 BoxLayout 面板中所有其他组件的对齐方式......我希望所有内容都向左对齐。任何帮助将非常感激!谢谢
however, for some reason it messed with all the other component's alignment in a 1 column BoxLayout panel
与各个组件的setAlignmentX(...)
方法有关。
JLabel 使用 0.0f(用于左对齐)。 JTextArea 和 JScrollPane 使用 0.5f(用于中心对齐)。
使用具有不同对齐方式的组件将在使用 BoxLayout
时导致对齐问题。
解决方案是更改文本区域或滚动窗格的对齐方式(无论您添加到 BoxLayout 的哪个组件)。
所以基本代码是:
JLabel label = new JLabel(...);
JTextArea textArea = new JTextArea(...);
textArea.setAlignmentX(0.0f);
JPanel panel = new BoxLayout(...);
panel.add(label);
panel.add(textArea);
现在两个组件都将左对齐。