关于如何显示消息列表,我得到了非常具体的要求。每条消息最长可达 3200 个字符。对于这种特定的消息显示,只显示每条消息的前两行,以完整的原始格式(制表符、空格、换行符)显示任何适合的消息。消息将包含在 JInternalFrame 中。当用户拖动框架的一侧以增加或减少其宽度时,消息的可见文本应该随着框架增加或减少,不需要水平滚动条。
我能够通过使用以下内容随着框架的宽度增加/减少文本来获得所需的行为:
JTextArea ta = new JTextArea();
ta.setLineWrap(true);
ta.setWrapStyleWord(true);
ta.setRows(2);
ta.setEditable(false);
ta.setOpaque(false);
ta.setText(longString());
ta.setAlignmentY(TOP_ALIGNMENT);
JScrollPane scrollPane = new JScrollPane(ta);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
将滚动窗格列表添加到具有垂直滚动条但在 JInternalFrame 中没有水平滚动条的 JScrollPane。
我遇到的问题是文本位于 JTextArea 的底部,因此用户看到的是消息的最后两行,而不是前两行。似乎可以设置水平对齐,但不能设置垂直对齐。有没有办法让顶部的文本对齐自动扩展/收缩文本?