使用Cobra
,我有一个void函数,它将滚动到dom树的给定节点或htmlpane
的给定像素。当我使用JFrame.setContentPane()
函数将htmlpane
设置为容器,并使用scroll()
函数滚动特定点时,它不起作用。
这是代码:
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));
上面写着:
此处不允许使用void函数。
我不熟悉您正在使用的Cobra API,但在大多数情况下,GUI组件必须在滚动之前自行布局。这是因为在你将组件添加到容器之前,它不知道它的大小。试着推迟滚动,看看它是否有帮助:
frame.setContentPane(htmlPanel);
frame.setVisible(true);
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
htmlPanel.scroll(500, 300);
}
});