Frage

Gibt es eine einfache Möglichkeit, eine Web-Seite innerhalb eines GUI JPanel zu öffnen?

Wenn nicht, wie öffnet man eine Web-Seite mit dem Standard-Web-Browser des Computers?

Ich hoffe auf etwas, das ich mit unter 20 Zeilen Code zu tun, und höchstens müsste eine Klasse erstellen. Kein Grund für 20 aber nur für wenig Code der Hoffnung ...

Ich plane, einen Führer zu öffnen mit einem Spiel zu gehen. Der Leitfaden ist online und hat mehrere Seiten, aber die Seiten miteinander verlinkt, so dass ich hoffe, ich habe nur mit meinem Code eine URL aufrufen.

War es hilfreich?

Lösung

Öffnen einer Web-Seite mit dem Standard-Web-Browser ist einfach:

java.awt.Desktop.getDesktop().browse(theURI);

einen Browser Einbettung ist nicht so einfach. JEditorPane hat einig HTML-Fähigkeit (wenn ich meinen begrenzten Swing Weiß richtig erinnere), aber es ist sehr begrenzt und nicht geeignet für einen Universal Browser.

Andere Tipps

Es gibt zwei Standardmethoden, die ich kenne:

  1. Der Standard JEditorPane Komponente
  2. Desktop . getDesktop() . browse(URI) zum öffnen des Standard-Browser des Benutzers (Java 6 oder höher)

    Bald wird es auch noch eine dritte:

  3. Die JWebPane Komponente, die offenbar noch nicht freigegeben worden

JEditorPane ist sehr nackten Knochen; es behandelt nicht CSS oder JavaScript, und Sie sogar Hyperlinks selbst behandeln müssen. Aber man kann es in Ihre Anwendung einbetten mehr nahtlos als Start FireFox wäre.

Hier ist ein Beispiel, wie die Verwendung von Hyperlinks (Ihre Dokumenten unter der Annahme nicht verwenden Frames):

// ... initialize myEditorPane
myEditorPane.setEditable(false); // to allow it to generate HyperlinkEvents
myEditorPane.addHyperlinkListener(new HyperlinkListener() {
    public void hyperlinkUpdate(HyperlinkEvent e) {
        if (e.getEventType() == HyperlinkEvent.EventType.ENTERED) {
            myEditorPane.setToolTipText(e.getDescription());
        } else if (e.getEventType() == HyperlinkEvent.EventType.EXITED) {
            myEditorPane.setToolTipText(null);
        } else if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
            try {
                myEditorPane.setPage(e.getURL());
            } catch (IOException ex) {
                // handle error
                ex.printStackTrace();
            }
        }
    }
});

Wenn Sie ein Applet sind entwickeln, können Sie AppletContext.showDocument . Das wäre ein Einzeiler:

getAppletContext().showDocument("http://example.com", "_blank");

Wenn Sie eine Desktop-Anwendung entwickeln, könnten Sie versuchen, Bare Bones Browser Starten .

Bitte versuchen Sie es unter Code:

import java.awt.Desktop;
import java.net.URI;
import java.net.URISyntaxExaception;

//below is the code
//whatvever the url is it has to have https://

Desktop d = Desktop.getDesktop();
try {
    d.browse(new URI("http://google.com"));
} catch (IOException | URISyntaxException e2) {
    e2.printStackTrace();
} 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top