Swing + Przegladarka

0

Cześć
jak umieścić przeglądarkę np. w JFrame korzystając z jakiejś przeglądarki, którą mogę wbudować w aplikacje, tak żeby się uruchamiała i pod windowsem i pod linuxem. Podradźcie gdzie szukać rozwiązania, jakieś linki do tutorialka jakiegoś mile widziane . Z góry dzięki za pomoc.

0

Zależy od funkcjonalności, jakiej wymagasz. http://stackoverflow.com/questions/817609/how-to-display-html-in-a-java-application ?http://www.java2s.com/Code/Java/Swing-JFC/Showwebpage.htm ?

0

Wracając do tej dyskusji , zainteresowałem się MozSwing ściągnąłem sobie ze strony:
http://sourceforge.net/projects/mozswing/files/mozswing-webstart/2.0beta2/, jarki dorzuciłem do projektu znalazłem przykładowy kod:

 public class Browser {
  // Input fields:
public String                          startUrl;
public Runnable                        signalTermination;

// Internal fields:
private boolean                        initialized;
private Observer                       observer;  
public void open() throws Exception {
   MozillaInitialization.initialize();
   if (!MozillaInitialization.isInitialized())
      throw new Exception ("Mozilla Initialization failed", MozillaInitialization.getError());
   observer = new Browser.Observer();
   registerWindowWatcherObserver (observer);
   openBrowserWindow();
   initialized = true; }

private void openBrowserWindow() {
   MozillaWindow win = new MozillaWindow();
   win.setSize (800, 600);
   win.setLocationByPlatform (true);
   win.load (startUrl);
   win.setVisible (true); }

public void dispose() throws Exception {
   if (initialized)
      closeAllBrowserWindows();
   if (observer != null)
      unregisterWindowWatcherObserver (observer); }

private class Observer implements nsIObserver {
        @Override
   public nsISupports queryInterface (String uuid) {
      return Mozilla.queryInterface(this, uuid); }
   public void observe (nsISupports subject, String topic, String data) {
      if (getNoOfWindows_mt() == 0)
         if (signalTermination != null)
            signalTermination.run(); }}

private static int getNoOfWindows() throws Exception {
   return MozillaExecutor.mozSyncExec (
      new Callable<Integer>() {
         public Integer call() {
            return getNoOfWindows_mt(); }}); }

private static int getNoOfWindows_mt() {
   return MozillaAutomation.getOpennedWindows().size(); }

private static void registerWindowWatcherObserver (final nsIObserver observer) throws Exception {
   MozillaExecutor.mozSyncExec (
      new Callable<Void>() {
         public Void call() throws Exception {
            registerWindowWatcherObserver_mt (observer);
            return null; }}); }

private static void registerWindowWatcherObserver_mt (nsIObserver observer) {
   nsIWindowWatcher winWatcher = XPCOMUtils.getService("@mozilla.org/embedcomp/window-watcher;1", nsIWindowWatcher.class);
   winWatcher.registerNotification (observer); }

private static void unregisterWindowWatcherObserver (final nsIObserver observer) throws Exception {
   MozillaExecutor.mozSyncExec (
      new Callable<Void>() {
         public Void call() throws Exception {
            unregisterWindowWatcherObserver_mt (observer);
            return null; }}); }

private static void unregisterWindowWatcherObserver_mt (nsIObserver observer) throws Exception {
   nsIWindowWatcher winWatcher = XPCOMUtils.getService("@mozilla.org/embedcomp/window-watcher;1", nsIWindowWatcher.class);
   winWatcher.unregisterNotification (observer); }

private static void closeAllBrowserWindows() throws Exception {
   MozillaExecutor.mozSyncExec (
      new Callable<Void>() {
         public Void call() throws Exception {
            closeAllBrowserWindows_mt();
            return null; }}); }

private static void closeAllBrowserWindows_mt() {
   List<IMozillaWindow> windows = MozillaAutomation.getOpennedWindows();
   for (IMozillaWindow window : windows) {
      ChromeAdapter chromeAdapter = window.getChromeAdapter();
      chromeAdapter.destroyBrowserWindow(); }}
}

Po uruchomieniu tego dostaję taki exeption:

2012-07-31 11:32:37 org.mozilla.browser.MozillaInitialization initialize
SEVERE: failed to initialize mozilla
java.io.IOException: Unable to resolve XULRunner home location
	at org.mozilla.browser.MozillaInitialization.initialize(MozillaInitialization.java:98)
	at mozillawebbrowser.Browser.open(Browser.java:29)
	at mozillawebbrowser.MozillaWebBrowser.main(MozillaWebBrowser.java:26)
java.lang.Exception: Mozilla Initialization failed
	at mozillawebbrowser.Browser.open(Browser.java:31)
	at mozillawebbrowser.MozillaWebBrowser.main(MozillaWebBrowser.java:26)
Caused by: java.io.IOException: Unable to resolve XULRunner home location
	at org.mozilla.browser.MozillaInitialization.initialize(MozillaInitialization.java:98)
	at mozillawebbrowser.Browser.open(Browser.java:29)
	... 1 more

Co zrobić żeby to zadziałało?

0
Jacek1989 napisał(a):

Cześć
jak umieścić przeglądarkę np. w JFrame korzystając z jakiejś przeglądarki, którą mogę wbudować w aplikacje, tak żeby się uruchamiała i pod windowsem i pod linuxem. Podradźcie gdzie szukać rozwiązania, jakieś linki do tutorialka jakiegoś mile widziane . Z góry dzięki za pomoc.

Kompletnie nie rozumiem co chcesz uzyskać? Przeglądarkę w aplecie? Aplikacja java uruchomi się pod windowsem i pod linuxem jak systemy te będą miały zainstalowane virtualne maszyny. Przeglądarki też są wersje na linuxa i windowsa - opera, firefox. Ewentualnie można odpalić w wine.

0

Też nie wiem co chcesz uzyskać, najprostszy sposób uruchomienia przeglądarki, to:

Desktop.getDesktop().browse(adresStrony);

Uruchomi się domyślna przeglądarka, adresStrony winien być postaci

new URI("http:\\4programmers.net/Forum");

1 użytkowników online, w tym zalogowanych: 0, gości: 1