滚动到JFrame的特定部分

时间:2012-02-26 06:51:31

标签: java swing jframe jscrollpane jtextcomponent

使用Cobra,我有一个void函数,它将滚动到dom树的给定节点或htmlpane的给定像素。当我使用JFrame.setContentPane()函数将htmlpane设置为容器时,我使用scroll()函数滚动specefic点,它不起作用。

以下是代码:

HtmlRendererContext rendererContext = (HtmlRendererContext) new  LocalHtmlRendererContext(htmlPanel, uAgent);
DocumentBuilderImpl builder = new DocumentBuilderImpl(uAgent, rendererContext);
Document document = builder.parse(url);
JFrame frame = new JFrame();
htmlPanel.scroll(500, 300);
//frame.getContentPane().add(htmlPanel);
frame.setContentPane(htmlPanel);

如果您看到以下代码:

frame.setContentPane(htmlPanel.scroll(500, 300));

它说:

  

此处不允许使用空白功能。

1 个答案:

答案 0 :(得分:2)

我不熟悉您正在使用的Cobra API,但在大多数情况下,GUI组件必须在滚动之前自行解决。这是因为在将组件添加到容器之前,它不知道它将具有什么尺寸。尝试延迟滚动并查看它是否有帮助:

frame.setContentPane(htmlPanel);
frame.setVisible(true);
SwingUtilities.invokeLater(new Runnable() {
    @Override
    public void run() {
        htmlPanel.scroll(500, 300);
    }
});