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

//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编码并使它看起来像多行文本即可。

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

谢谢

最佳答案

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

list.ensureIndexIsVisible(list.getSelectedIndex());

10-06 15:58