Если я просто запускаю swt brower и не встраиваю его в canvas. Он может показать веб-страницу в Linux. Так что я думаю, что проблема в мосте SWT_AWT.
Мой код прикреплен ниже:
public class BrowserClass {
public static void main(String[] args) {
Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("Browser Example");
shell.setSize(620, 500);
ToolBar toolbar = new ToolBar(shell, SWT.NONE);
toolbar.setBounds(5, 5, 200, 30);
ToolItem goButton = new ToolItem(toolbar, SWT.PUSH);
goButton.setText("Go");
ToolItem backButton = new ToolItem(toolbar, SWT.PUSH);
backButton.setText("Back");
ToolItem stopButton = new ToolItem(toolbar, SWT.PUSH);
stopButton.setText("Stop");
final Text text = new Text(shell, SWT.BORDER);
text.setBounds(5, 35, 400, 25);
final Browser browser = new Browser(shell, SWT.NONE);
browser.setBounds(5, 75, 600, 400);
Listener listener = new Listener() {
public void handleEvent(Event event) {
ToolItem item = (ToolItem) event.widget;
String string = item.getText();
if (string.equals("Back"))
browser.back();
else if (string.equals("Stop"))
browser.stop();
else if (string.equals("Go"))
browser.setUrl(text.getText());
}
};
goButton.addListener(SWT.Selection, listener);
backButton.addListener(SWT.Selection, listener);
stopButton.addListener(SWT.Selection, listener);
text.addListener(SWT.DefaultSelection, new Listener() {
public void handleEvent(Event e) {
browser.setUrl(text.getText());
}
});
shell.open();
browser.setUrl("http://www.google.com");
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
Он может открыть сайт Google. Но если я использую метод SWT_AWT.new_Shell. Это не хорошо.
Я не могу вставить в нее кнопку SWT.
Моя среда: mozilla 1.7.7
gtk: gtk2-2.2.4-19
Linux: Red Hat Enterprise Linux ES выпуск 3 (обновление Taroon 8)
uname -a
2.4.21-47.ELsmp # 1 SMP Ср 5 июля 20:38:41 EDT 2006 i686 i686 i386 GNU / Linux