Выделите определенную часть JFrame - PullRequest
2 голосов
/ 26 февраля 2012

Используя 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 здесь запрещена.

1 Ответ

2 голосов
/ 26 февраля 2012

Я не знаком с Cobra API, который вы используете, но в большинстве случаев компоненты GUI должны раскладываться, прежде чем вы сможете прокрутить. Это связано с тем, что до добавления компонента в контейнер он не знает, какого он будет размера. Попробуйте отложить прокрутку и посмотрите, поможет ли это:

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