埋め込み Web ページを表示する Java アプリケーションがあります。NativeSwing jwebbrowser でやっていますが、組み込みブラウザが IE7 であることが判明したため、スタイルに問題があります。そのマシンには IE8 がインストールされているので、それがデフォルトのブラウザになることを望みました。
これはライブラリの制限ですか?ブラウザのバージョンを選択する方法はありますか?
ありがとう。
埋め込み Web ページを表示する Java アプリケーションがあります。NativeSwing jwebbrowser でやっていますが、組み込みブラウザが IE7 であることが判明したため、スタイルに問題があります。そのマシンには IE8 がインストールされているので、それがデフォルトのブラウザになることを望みました。
これはライブラリの制限ですか?ブラウザのバージョンを選択する方法はありますか?
ありがとう。
数時間の作業の後、システムにインストールされた最新バージョンの Internet Explorer (私にとっては IE9 ) で jwebbrowser を実行することができました。
この問題は SWT のバージョンに関連しており、The SWT FAQで説明されています。このリンクからswt.jarを含め、このリンクからDJNativeSwing.jarとDJNativeSwing-SWT.jarを含め、次のコードを実行する
/*
* Christopher Deckers (chrriis@nextencia.net)
* http://www.nextencia.net
*
* See the file "readme.txt" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*/
package chrriis.dj.nativeswing.swtimpl.demo.examples.webbrowser;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.BorderFactory;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import chrriis.common.UIUtils;
import chrriis.dj.nativeswing.swtimpl.NativeInterface;
import chrriis.dj.nativeswing.swtimpl.components.JWebBrowser;
/**
* @author Christopher Deckers
*/
public class SimpleWebBrowserExample {
public static JComponent createContent() {
JPanel contentPane = new JPanel(new BorderLayout());
JPanel webBrowserPanel = new JPanel(new BorderLayout());
webBrowserPanel.setBorder(BorderFactory.createTitledBorder("Native Web Browser component"));
final JWebBrowser webBrowser = new JWebBrowser();
webBrowser.navigate("http://www.browserproperties.com");
webBrowserPanel.add(webBrowser, BorderLayout.CENTER);
contentPane.add(webBrowserPanel, BorderLayout.CENTER);
// Create an additional bar allowing to show/hide the menu bar of the web browser.
JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 4, 4));
JCheckBox menuBarCheckBox = new JCheckBox("Menu Bar", webBrowser.isMenuBarVisible());
menuBarCheckBox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
webBrowser.setMenuBarVisible(e.getStateChange() == ItemEvent.SELECTED);
}
});
buttonPanel.add(menuBarCheckBox);
contentPane.add(buttonPanel, BorderLayout.SOUTH);
return contentPane;
}
/* Standard main method to try that test as a standalone application. */
public static void main(String[] args) {
NativeInterface.open();
UIUtils.setPreferredLookAndFeel();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame("DJ Native Swing Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(createContent(), BorderLayout.CENTER);
frame.setSize(800, 600);
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
});
NativeInterface.runEventPump();
}
}
最終的に表示されます:
Internet Explorer を使用しています 基本情報 ブラウザ名: Internet Explorer ブラウザ バージョン: 9.0 お使いのプラットフォーム: Windows ... (キャッシュを避けるために、1 回または 2 回更新する必要がある場合があります)