Domanda

C'è un modo semplice per aprire una pagina web all'interno di JPanel di una GUI?

Se no, come si fa ad aprire una pagina web con il browser web predefinito del computer?

Mi auguro per qualcosa che posso fare con meno di 20 righe di codice, e al massimo avrei bisogno di creare una classe. Non c'è ragione per il 20, però, solo sperando in po 'di codice ...

Ho in programma di aprire una guida per andare con un gioco. La guida è in linea e ha più pagine, ma le pagine di collegamento tra di loro, quindi spero ho solo chiamare un URL con il mio codice.

È stato utile?

Soluzione

Apertura di una pagina web con il browser web di default è facile:

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

Incorporare un browser non è così facile. JEditorPane ha alcuni capacità HTML (se non ricordo la mia limitata conoscenza Swing-correttamente), ma è molto limitata e non suiteable per un browser per tutti gli usi.

Altri suggerimenti

Ci sono due modi standard che io conosca:

  1. JEditorPane componente
  2. Desktop . getDesktop() . browse(URI) per aprire il browser predefinito dell'utente (Java 6 o superiore)

    Presto, ci sarà anche un terzo:

  3. Il componente JWebPane , che a quanto pare non è ancora stato rilasciato

JEditorPane è molto ridotto all'osso; non gestire i CSS o JavaScript, e nemmeno bisogno di gestire i collegamenti ipertestuali da soli. Ma è possibile incorporare nella vostra applicazione più senza soluzione di continuità di lanciare Firefox sarebbe.

Ecco un esempio di come utilizzare i collegamenti ipertestuali (supponendo che i documenti non utilizzare frame):

// ... 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();
            }
        }
    }
});

Se si sta sviluppando un applet, è possibile utilizzare AppletContext.showDocument . Sarebbe una battuta:

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

Se si sta sviluppando un'applicazione desktop, si potrebbe provare a Bare Bones Browser lancio .

Non ho provato a tutti, ma il cobra HTML parser e visualizzatore dal del browser Lobo , un browser writen in puro Java, può essere quello che stai cercando. Essi forniscono codice di esempio per impostare un visualizzatore html in linea:

import javax.swing.*;
import org.lobobrowser.html.gui.*;
import org.lobobrowser.html.test.*;

public class BareMinimumTest {
  public static void main(String[] args) throws Exception {
    JFrame window = new JFrame();
    HtmlPanel panel = new HtmlPanel();
    window.getContentPane().add(panel);
    window.setSize(600, 400);
    window.setVisible(true);
    new SimpleHtmlRendererContext(panel, new SimpleUserAgentContext())
    .navigate("http://lobobrowser.org/browser/home.jsp");
  }
}

Non so se tale un built-in esiste, ma vorrei utilizzare il di runtime classe exec con iexplore.exe o firefox.exe come argomento.

Si prega di provare sottostante Codice:

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();
} 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top