我有一个 JScrollPane,它使用以下代码保存 JLabel:
//创建文本日志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 编码并使其看起来像多行文本。
抱歉,如果这是重复的,我尝试搜索但找不到任何结果。
谢谢
最佳答案
您可以进行一些自定义数学计算并使用 scrollRectToVisible()在你的视口(viewport)中。我不知道如何计算 JLabel 中特定行的矩形。更好的解决方案是将字符串粘贴到 JList 中,也许使用 html 的自定义渲染器,然后使用
list.ensureIndexIsVisible(list.getSelectedIndex());
关于java - 滚动浏览 JScrollPane 中保存的 JLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3104399/