Es passiert auch jedes Mal, wenn ich Loadurl aufrufe, um eine neue Seite im Browser zu laden: Das JTextField wird wieder eineditabel, bis ich im JFRame . /> Update < /strong>:
Ich habe einen Hack gefunden, mit dem das JTextField < /code> wieder bearbeitetbar wird, aber ich würde es nicht als Lösung bezeichnen, weil es nicht sehr elegant ist. Ich habe der CEFClient -Instanz (client.addloadHandler (neuer cefloadHandlerAdapter ()) ) mit einem @ovveride in der OnLoadingStatechange -Methode einen Zugriff auf die aktuelle Browserkomponente hinzugefügt. Von dort aus kann ich beim Laden des Browsers erkennen, und verwenden Sie SwingUtilities, um das Fenster zu erhalten, in dem sich die Browserkomponente befindet. Dann setze ich auf diesem Fenster ein (falsch) und setvisible (true) . Ich sage, es ist keine Lösung, denn jedes Mal, wenn der Browser das Laden des Fensters verschwindet und wieder auftaucht. Obwohl die JTextField wieder bearbeitet werden können, ist es ziemlich hässlich zu sehen, wie das Fenster blinkt. Ich habe alle Arten von revalidate () und repaint () methodien ohne Verfügbarkeit ausprobiert, es sei denn
Code: Select all
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);
}
}
});