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.
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 ?
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?
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.
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");