это также происходит каждый раз, когда я вызываю LoadUrl , чтобы загрузить новую страницу в браузере: JTextField снова становятся неоплачиваемыми, пока я не потеряю/набег в jframe . /> update < /strong>:
Я нашел взлом, который позволяет JTextfield < /code> S снова стать редактируемым, но я бы не назвал его решением, потому что это не очень элегантно. Я добавил обработчик загрузки в экземпляр CefClient (client.addloadhandler (new CefloadhandlerAdapter ()) ) с помощью @ovveride на методе OnloadingStateChange , который, в свою очередь, дает доступ к текущему компоненту браузера. Оттуда я могу обнаружить при завершении загрузки в браузере, и использовать SwingUtilities, чтобы получить окно, в котором находится компонент браузера. Затем я setVisible (false) и setVisible (true) в этом окне. Я говорю, что это не решение, потому что каждый раз, когда браузер готов загружать окно исчезает и появляется. Несмотря на то, что JTextfield снова редактируется, довольно некрасиво видеть, как окно мигает. Я попробовал все виды revalidate () и repaint () методы безрезультатно, если только я не назвал их правильно ...
Код: Выделить всё
client.addLoadHandler(new CefLoadHandlerAdapter() {
@Override
public void onLoadingStateChange(CefBrowser browser, boolean isLoading,
boolean canGoBack, boolean canGoForward) {
if (!isLoading) {
//browser_ready = true;
System.out.println("Browser has finished loading!");
SwingUtilities.windowForComponent( browser.getUIComponent() ).setVisible(false);
SwingUtilities.windowForComponent( browser.getUIComponent() ).setVisible(true);
}
}
});
Подробнее здесь: https://stackoverflow.com/questions/646 ... l-jframe-l