1

我有一个使用以下代码保存 JLabel 的 JScrollPane:

//Create TEXT LOG JPanel textLogPane = new JScrollPane(logLabel); textLogPane.setPreferredSize(textLogPaneDim); //textLogPane.setOpaque(true); textLogPane.setBorder(BorderFactory.createLineBorder(Color.BLACK)); textLogPane.getViewport().setBackground(Color.DARK_GRAY);

JLabel、logLabel 由带有 HTML 编码的字符串表示,
用于回车。我根据某些行的内容显示某些图像,并且我希望能够滚动 JScrollPane、textLogPane,以便在显示该图形时显示该行。我知道我想要显示的行的内容,但我似乎无法弄清楚如何让它向下(或向上)滚动到相关行。

如果需要,我可以更改为 JLabel 以外的其他内容,只要我可以保留 HTML 编码并让它看起来就像多行文本。

抱歉,如果这是重复我尝试搜索但找不到任何结果。

谢谢

4

2 回答 2

1

您可以进行一些自定义数学运算并在视口中使用scrollRectToVisible()。我不知道如何计算 JLabel 中特定行的矩形。更好的解决方案是将您的字符串粘贴到 JList 中,也许使用 html 的自定义渲染器,并使用

list.ensureIndexIsVisible(list.getSelectedIndex());
于 2010-06-23T19:15:37.297 回答
1

您不在 HTML 中使用“回车”,而是使用“br”标签。

我建议您可能应该将 JTextPane 用于多行文本。我还发现不使用 HTML 而是添加带有属性的字符串更容易。您还可以将图标插入 JTextPane。

阅读 Swing 教程中有关使用文本组件的部分以获取工作示例。

于 2010-06-23T19:20:50.957 回答