亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

SWT(JFace) 簡易瀏覽器 制作實現代碼第1/2頁

2020-01-31 16:51:27
字體:
來源:轉載
供稿:網友
代碼如下:
BrowserExample.java
復制代碼 代碼如下:

package swt_jface.demo5;
import java.text.MessageFormat;
import java.util.MissingResourceException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTError;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.browser.CloseWindowListener;
import org.eclipse.swt.browser.LocationEvent;
import org.eclipse.swt.browser.LocationListener;
import org.eclipse.swt.browser.OpenWindowListener;
import org.eclipse.swt.browser.ProgressEvent;
import org.eclipse.swt.browser.ProgressListener;
import org.eclipse.swt.browser.StatusTextEvent;
import org.eclipse.swt.browser.StatusTextListener;
import org.eclipse.swt.browser.TitleEvent;
import org.eclipse.swt.browser.TitleListener;
import org.eclipse.swt.browser.VisibilityWindowListener;
import org.eclipse.swt.browser.WindowEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.ProgressBar;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
public class BrowserExample {
//static ResourceBundle resourceBundle = ResourceBundle.getBundle("examples_browser");
int index;
boolean busy;
Image images[];
Text location;
Browser browser;
static final String[] imageLocations = {
"eclipse01.bmp", "eclipse02.bmp", "eclipse03.bmp", "eclipse04.bmp", "eclipse05.bmp",
"eclipse06.bmp", "eclipse07.bmp", "eclipse08.bmp", "eclipse09.bmp", "eclipse10.bmp",
"eclipse11.bmp", "eclipse12.bmp",};
static final String iconLocation = "document.gif";

public BrowserExample(Composite parent) {
final Display display = parent.getDisplay();
FormLayout layout = new FormLayout();
parent.setLayout(layout);
ToolBar toolbar = new ToolBar(parent, SWT.NONE);
final ToolItem itemBack = new ToolItem(toolbar, SWT.PUSH);
itemBack.setText(getResourceString("Back"));
final ToolItem itemForward = new ToolItem(toolbar, SWT.PUSH);
itemForward.setText(getResourceString("Forward"));
final ToolItem itemStop = new ToolItem(toolbar, SWT.PUSH);
itemStop.setText(getResourceString("Stop"));
final ToolItem itemRefresh = new ToolItem(toolbar, SWT.PUSH);
itemRefresh.setText(getResourceString("Refresh"));
final ToolItem itemGo = new ToolItem(toolbar, SWT.PUSH);
itemGo.setText(getResourceString("Go"));
location = new Text(parent, SWT.BORDER);
images = new Image[]{new Image(display, "C:/icons/web/go.gif")};
final Canvas canvas = new Canvas(parent, SWT.NO_BACKGROUND);
final Rectangle rect = images[0].getBounds();
canvas.addListener(SWT.Paint, new Listener() {
public void handleEvent(Event e) {
Point pt = canvas.getSize();
e.gc.drawImage(images[index], 0, 0, rect.width, rect.height, 0, 0, pt.x, pt.y);
}
});
canvas.addListener(SWT.MouseDown, new Listener() {
public void handleEvent(Event e) {
browser.setUrl(getResourceString("Startup"));
}
});

display.asyncExec(new Runnable() {
public void run() {
if (canvas.isDisposed()) return;
if (busy) {
index++;
if (index == images.length) index = 0;
canvas.redraw();
}
display.timerExec(150, this);
}
});
final Label status = new Label(parent, SWT.NONE);
final ProgressBar progressBar = new ProgressBar(parent, SWT.NONE);
FormData data = new FormData();
data.top = new FormAttachment(0, 5);
toolbar.setLayoutData(data);
data = new FormData();
data.left = new FormAttachment(0, 0);
data.right = new FormAttachment(100, 0);
data.top = new FormAttachment(canvas, 5, SWT.DEFAULT);
data.bottom = new FormAttachment(status, -5, SWT.DEFAULT);
try {
browser = new Browser(parent, SWT.NONE);
browser.setLayoutData(data);
} catch (SWTError e) {
Label label = new Label(parent, SWT.CENTER | SWT.WRAP);
label.setText(getResourceString("BrowserNotCreated"));
label.setLayoutData(data);
}
data = new FormData();
data.width = 24;
data.height = 24;
data.top = new FormAttachment(0, 5);
data.right = new FormAttachment(100, -5);
canvas.setLayoutData(data);
data = new FormData();
data.top = new FormAttachment(toolbar, 0, SWT.TOP);
data.left = new FormAttachment(toolbar, 5, SWT.RIGHT);
data.right = new FormAttachment(canvas, -5, SWT.DEFAULT);
location.setLayoutData(data);
data = new FormData();
data.left = new FormAttachment(0, 5);
data.right = new FormAttachment(progressBar, 0, SWT.DEFAULT);
data.bottom = new FormAttachment(100, -5);
status.setLayoutData(data);

data = new FormData();
data.right = new FormAttachment(100, -5);
data.bottom = new FormAttachment(100, -5);
progressBar.setLayoutData(data);
if (browser != null) {
itemBack.setEnabled(browser.isBackEnabled());
itemForward.setEnabled(browser.isForwardEnabled());

Listener listener = new Listener() {
public void handleEvent(Event event) {
ToolItem item = (ToolItem)event.widget;
if (item == itemBack) browser.back();
else if (item == itemForward) browser.forward();
else if (item == itemStop) browser.stop();
else if (item == itemRefresh) browser.refresh();
else if (item == itemGo) browser.setUrl(location.getText());
}
};
browser.addLocationListener(new LocationListener() {
public void changed(LocationEvent event) {
busy = true;
if (event.top) location.setText(event.location);
}
public void changing(LocationEvent event) {
}
});
browser.addProgressListener(new ProgressListener() {
public void changed(ProgressEvent event) {
if (event.total == 0) return;
int ratio = event.current * 100 / event.total;
progressBar.setSelection(ratio);
busy = event.current != event.total;
if (!busy) {
index = 0;
canvas.redraw();
}
}
public void completed(ProgressEvent event) {
itemBack.setEnabled(browser.isBackEnabled());
itemForward.setEnabled(browser.isForwardEnabled());
progressBar.setSelection(0);
busy = false;
index = 0;
canvas.redraw();
}
});
browser.addStatusTextListener(new StatusTextListener() {
public void changed(StatusTextEvent event) {
status.setText(event.text);
}
});
if (parent instanceof Shell) {
final Shell shell = (Shell)parent;
browser.addTitleListener(new TitleListener() {
public void changed(TitleEvent event) {
shell.setText(event.title+" - "+getResourceString("window.title"));
}
});
}
itemBack.addListener(SWT.Selection, listener);
itemForward.addListener(SWT.Selection, listener);
itemStop.addListener(SWT.Selection, listener);
itemRefresh.addListener(SWT.Selection, listener);
itemGo.addListener(SWT.Selection, listener);
location.addListener(SWT.DefaultSelection, new Listener() {
public void handleEvent(Event e) {
browser.setUrl(location.getText());
}
});
initialize(display, browser);
browser.setUrl(getResourceString("Startup"));
}
}
static String getResourceString(String key) {
try {
return "key";
} catch (MissingResourceException e) {
return key;
} catch (NullPointerException e) {
return "!" + key + "!";
}
}
static String getResourceString(String key, Object[] args) {
try {
return MessageFormat.format(getResourceString(key), args);
} catch (MissingResourceException e) {
return key;
} catch (NullPointerException e) {
return "!" + key + "!";
}
}
static void initialize(final Display display, Browser browser) {
browser.addOpenWindowListener(new OpenWindowListener() {
public void open(WindowEvent event) {
System.out.println("Open");
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
Browser browser = new Browser(shell, SWT.NONE);
initialize(display, browser);
event.browser = browser;
}
});
browser.addVisibilityWindowListener(new VisibilityWindowListener() {
public void hide(WindowEvent event) {
}
public void show(WindowEvent event) {
System.out.println("Show");
Browser browser = (Browser)event.widget;
Shell shell = browser.getShell();
if (event.location != null) shell.setLocation(event.location);
if (event.size != null) {
Point size = event.size;
shell.setSize(shell.computeSize(size.x, size.y));
}
shell.open();
}
});
browser.addCloseWindowListener(new CloseWindowListener() {
public void close(WindowEvent event) {
System.out.println("Close");
Browser browser = (Browser)event.widget;
Shell shell = browser.getShell();
shell.close();
}
});
}
public void dispose() {
freeResources();
}
void freeResources() {
if (images != null) {
for (int i = 0; i < images.length; ++i) {
final Image image = images[i];
if (image != null) image.dispose();
}
images = null;
}
}
public void setFocus() {
location.setFocus();
}
public static void main(String [] args) {

Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
shell.setText("Browser example");
BrowserExample instance = new BrowserExample(shell);
Image icon = new Image(display, "C:/icons/web/go.gif");
shell.setImage(icon);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
icon.dispose();
instance.dispose();
display.dispose();
}
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美国产高清va在线播| 亚洲毛片一区二区| 午夜剧场成人观在线视频免费观看| 亚洲一区www| 久久97久久97精品免视看| 欧美激情一二三| 不卡av电影院| 国内精久久久久久久久久人| 亚洲日本欧美中文幕| 中文字幕在线视频日韩| 色婷婷成人综合| 91九色视频导航| 影音先锋日韩有码| 北条麻妃久久精品| 最好看的2019的中文字幕视频| 国产午夜精品视频免费不卡69堂| 国产精品成人观看视频国产奇米| 色综合男人天堂| 亚洲专区在线视频| 欧美性猛交xxxx乱大交极品| 日韩欧美国产免费播放| 欧美激情18p| 久久伊人色综合| 欧美俄罗斯乱妇| 久久99久久亚洲国产| 国产欧美精品va在线观看| 精品五月天久久| 91精品综合久久久久久五月天| 96精品久久久久中文字幕| 欧美疯狂做受xxxx高潮| 九九久久久久久久久激情| 色综合天天狠天天透天天伊人| 欧美日韩一区二区在线| 久久亚洲春色中文字幕| 97国产精品视频| www.99久久热国产日韩欧美.com| 国产午夜精品全部视频在线播放| 国产91热爆ts人妖在线| 91在线视频导航| 欧美日韩在线免费观看| 亚洲精品资源在线| 在线播放精品一区二区三区| 亚洲天堂男人的天堂| 亚洲最新av在线| 日本欧美爱爱爱| 欧美大奶子在线| 久久免费视频在线观看| 精品丝袜一区二区三区| 高清一区二区三区四区五区| 久久97精品久久久久久久不卡| 国产成人精品视频在线| 韩剧1988免费观看全集| 美女撒尿一区二区三区| 91精品久久久久久久久不口人| 日韩黄色在线免费观看| 久久精品久久久久久国产 免费| 国产精品av在线播放| 欧美重口另类videos人妖| 亚洲国产精品一区二区三区| 国产精品青青在线观看爽香蕉| 88xx成人精品| 国产精品永久免费在线| 国产精品jvid在线观看蜜臀| 国产一区二区三区丝袜| 91精品视频一区| 国产精品自产拍在线观看中文| 国产精品99久久久久久久久| 隔壁老王国产在线精品| 91国语精品自产拍在线观看性色| 91亚洲精品在线| 国产日本欧美在线观看| 国产一区二区三区日韩欧美| 亚洲精品日韩激情在线电影| 成人在线视频福利| 国产亚洲欧美日韩一区二区| 国产在线精品成人一区二区三区| 免费不卡在线观看av| 亚洲视频专区在线| 国产精品美女久久久免费| 亚洲天堂男人天堂| 国产成人一区二区| 国产精品中文久久久久久久| 亚洲a级在线播放观看| 1769国内精品视频在线播放| 久久精品亚洲一区| 日本午夜精品理论片a级appf发布| 91理论片午午论夜理片久久| 欧美午夜片欧美片在线观看| 国产精品爽黄69| 97国产精品人人爽人人做| 久久精品小视频| 丝袜一区二区三区| 久久久综合av| 中文字幕日韩欧美在线| 国产91色在线| 国外成人在线视频| 97色在线观看| 久久久久久九九九| 欧美一区二区三区……| 欧美精品做受xxx性少妇| 日韩美女主播视频| www.久久久久| 91热福利电影| 亚洲男女性事视频| 日韩av一区二区在线| 91精品国产网站| 日韩中文字幕在线| 色阁综合伊人av| 欧美中文在线观看国产| 欧美大肥婆大肥bbbbb| 国产情人节一区| 国产精品 欧美在线| 91在线精品播放| 日本精品视频在线播放| 91国产精品91| 亚洲欧美综合v| 在线观看免费高清视频97| 中文字幕日韩精品在线观看| www.日韩视频| 国产精品成久久久久三级| 亚洲自拍偷拍福利| 亚洲男人7777| 正在播放欧美一区| 亚洲一区二区福利| 欧美激情伊人电影| 亚洲欧美激情四射在线日| 久久久久女教师免费一区| 亚洲精品国产精品自产a区红杏吧| 性色av一区二区咪爱| 热久久免费视频精品| 日韩欧美在线视频日韩欧美在线视频| 亚洲日本aⅴ片在线观看香蕉| 欧美怡春院一区二区三区| 亚洲情综合五月天| 久久久久久国产精品三级玉女聊斋| 久久久久久久久久久人体| 欧美激情综合色综合啪啪五月| 久久久影视精品| 色综合影院在线| 欧美日韩免费区域视频在线观看| 日韩中文字幕免费看| 日韩免费在线看| 欧美激情第6页| 日韩欧美国产高清91| 91精品国产777在线观看| 国产亚洲精品美女| www高清在线视频日韩欧美| 国产精品高清网站| 国产精品久久久久久久美男| 欧美激情在线观看| 国产成+人+综合+亚洲欧美丁香花| 久久久亚洲国产| 久久久人成影片一区二区三区| 欧美午夜无遮挡| 亚洲国产成人一区| 久久久久免费精品国产| 日韩国产高清视频在线| 亚洲欧美日韩国产中文| 国产亚洲精品高潮| 亚洲福利在线观看| 久久国产精品久久精品| 国产香蕉一区二区三区在线视频| 国产中文日韩欧美| 91国产视频在线播放|