導航:首頁 > 編程語言 > javaswt嵌入瀏覽器

javaswt嵌入瀏覽器

發布時間:2023-09-10 08:00:46

java中SWT和swing是什麼關系在界面中分別扮演著什麼樣的角色

AWT都是重量級組件,通過調用平台對等體實現GUI,所以有個最大公約數問題。界面也很回難看。
Swing絕大答部分是輕量級組件,用Java自己繪制GUI,可以方便的使用各種L&F,但是比較消耗資源。
SWT和JFace是開發Eclipse使用的GUI技術,只有平台沒有的才自己繪制,所以界面和平台一樣,速度也很快。使用平台資源需要dispose掉。但運行的時候需要有平台鏈接庫。
SWT和Swing可以相互轉換和互相調用,但技術還不成熟。
個人認為SWT更強,尤其是你要做和Eclipse相似的項目,或者有時需要使用平台特性時。SWT做資源管理器和瀏覽器什麼的,比Swing方便的太多了。但Swing是正宗血統,而且可以換各種漂亮的界面。
AWT是用的比較少了,Swing和SWT各有所長吧。

❷ java swing怎麼嵌入js

import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
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;
import chrriis.dj.nativeswing.swtimpl.components.WebBrowserCommandEvent;
import chrriis.dj.nativeswing.swtimpl.components.WebBrowserEvent;
import chrriis.dj.nativeswing.swtimpl.components.WebBrowserListener;
import chrriis.dj.nativeswing.swtimpl.components.WebBrowserNavigationEvent;
import chrriis.dj.nativeswing.swtimpl.components.WebBrowserWindowOpeningEvent;
import chrriis.dj.nativeswing.swtimpl.components.WebBrowserWindowWillOpenEvent;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
import com.mohe.utils.system.L;
/**
* 主窗體
*
* @author dxm
*
*/
public class MainFrame extends JFrame {

private static final long serialVersionUID = -6348199501339114346L;

// 最後操作時間
public long lastTime = new Date().getTime();

// 瀏覽器窗體
private JWebBrowser webBrowser = null;
private JLabel lbl = null;
private JPanel panel = null;

public int pageFlag = 1;

/**
* 構造器
*/
public MainFrame() {
initData();
initGUI();
addListance();
}

private void initData() {

Toolkit toolkit = Toolkit.getDefaultToolkit();

this.setUndecorated(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(600, 500);
this.setLocationRelativeTo(null);
this.setSize(toolkit.getScreenSize());
this.setLocation(0, 0);

webBrowser = new JWebBrowser();
webBrowser.navigate(Config.local + Config.index);
webBrowser.setBarsVisible(false);
webBrowser.setMenuBarVisible(false);
webBrowser.setLocationBarVisible(false);
webBrowser.setButtonBarVisible(false);
webBrowser.setStatusBarVisible(false);

ImageIcon icon = new ImageIcon(System.getProperty("user.dir") + "\\城市.gif");
File img = new File(System.getProperty("user.dir") + "\\" + Config.img);
if (img.exists()) {
icon = new ImageIcon(img.getAbsolutePath());
}
lbl = new JLabel(icon);

panel = new JPanel(new BorderLayout());
}

private void initGUI() {
panel.add(webBrowser, BorderLayout.CENTER);
this.setContentPane(panel);
}

private void addListance() {

webBrowser.addWebBrowserListener(new WebBrowserListener() {

@Override
public void windowWillOpen(WebBrowserWindowWillOpenEvent arg0) {
lastTime = new Date().getTime();
L.info("___________ windowWillOpen");
}

@Override
public void windowOpening(WebBrowserWindowOpeningEvent arg0) {
lastTime = new Date().getTime();
L.info("___________ windowOpening");
}

@Override
public void windowClosing(WebBrowserEvent arg0) {
lastTime = new Date().getTime();
L.info("___________ windowClosing");
}

@Override
public void titleChanged(WebBrowserEvent arg0) {
lastTime = new Date().getTime();
L.info("___________ titleChanged");
}

@Override
public void statusChanged(WebBrowserEvent arg0) {
lastTime = new Date().getTime();
L.info("___________ statusChanged");
}

@Override
public void locationChanging(WebBrowserNavigationEvent arg0) {
lastTime = new Date().getTime();
L.info("___________ locationChanging");
}

@Override
public void locationChanged(WebBrowserNavigationEvent arg0) {

lastTime = new Date().getTime();
L.info("___________ locationChanged");

// 判斷當前頁面等級
String locationURL = arg0.getNewResourceLocation();
int index = locationURL.indexOf("pageFlag=");
if (index != -1) {
pageFlag = Integer.parseInt(locationURL.substring(index + 9, index + 10));
} else {
pageFlag = 1;
}
System.out.println("____________________ pageFlag:" + pageFlag);

// 判斷下載文件進行列印
index = locationURL.indexOf("fileName=");
System.out.println("____________________ file Index:" + index);

if (index != -1) {

String fs = locationURL.substring(index + 9);
L.info("______________________ fileName = " + fs);
String[] fns = fs.split(",");
try {
List<File> flist = downNetFile(Arrays.asList(fns));
doPrintDoc(flist);
} catch (IOException e) {
e.printStackTrace();
}
}

SwingUtilities.invokeLater(new Runnable() {
public void run() {
webBrowser.setVisible(false);
webBrowser.setVisible(true);
webBrowser.updateUI();
webBrowser.repaint();
panel.updateUI();
panel.repaint();
panel.validate();
}
});

}
@Override
public void locationChangeCanceled(WebBrowserNavigationEvent arg0) {
lastTime = new Date().getTime();
L.info("___________ locationChangeCanceled");
}
@Override
public void loadingProgressChanged(WebBrowserEvent arg0) {
lastTime = new Date().getTime();
L.info("___________ loadingProgressChanged");
}
@Override
public void commandReceived(WebBrowserCommandEvent arg0) {
lastTime = new Date().getTime();
L.info("___________ commandReceived");
}
});
lbl.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent arg0) {
}

@Override
public void mousePressed(MouseEvent arg0) {
}
@Override
public void mouseExited(MouseEvent arg0) {
}
@Override
public void mouseEntered(MouseEvent arg0) {
}

@Override
public void mouseClicked(MouseEvent arg0) {
change(2);
}
});

}

❸ 有人用Java做過瀏覽器外殼,並熟悉JWebBrowser嗎

還真沒試過這種形式,也許你可以谷歌看看,有沒有外國開源的庫。

❹ JAVA類如何打開網頁

JAVA中的類是具備某些共同特徵的實體的集合,它是一種抽象的概念,用程序設計的語言來說,類是一種抽象的數據類型,它是對所具有相同特徵實體的抽象。所謂對象就是真實世界中的實體,對象與實體是一一對應的,也就是說現實世界中每一個實體都是一個對象,對象是一種具體的概念。JAVA類打開網頁有以下方法:

1、java.net.URI uri = new java.net.URI("http://www..com");

java.awt.Desktop.getDesktop().browse(uri);

2、Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler http://www..com");

這兩種方法是可以打開,不過只能在服務端打開,如果有另一台機器訪問我的機器,執行上邊的程序後,也會在我本機顯示的頁面。

3、如果是讓他自動打開可以用robot類模擬滑鼠單擊右鍵雙擊等動作,還可以模擬輸入。

4、如果要在網頁做復雜操作可以用swt做一個瀏覽器,可以控制他執行網站里的腳本,這個比較難點。

❺ Java GUI中有哪幾種常用的布局方式,各有什麼特點

Java GUI中有哪幾種常用的布局方式,各有什麼特點?

FlowLayout流式布局
BorderLayout邊界布局
GridLayout網格布局
CardLayout卡片布局
GridBagLayout網路包布局

java 的布局方式有什麼特點

布局?Java GUI布局吧?

AWT/Swing/SWT三種.

AWT 概述

Abstract Windows Toolkit(AWT)是最原始的 Java GUI 工具包。AWT 的主要優點是,它在 Java 技術的每個版本上都成為了一種標准配置,包括早期的 Web 瀏覽器中的 Java 實現;另外它也非常穩定。這意味著我們不需要單獨安裝這個工具包,在任何一個 Java 執行環境中都可以使用它,這一點正是我們所希望的特性。

AWT 是一個非常簡單的具有有限 GUI 元件、布局管理器和事件的工具包(參見 清單 1、清單 2 和 清單 3)。這是因為 Sun 公司決定為 AWT 使用一種最小公分母(LCD)的方法。因此它只會使用為所有 Java 主機環境定義的 GUI 元件。最終的結果非常不幸,有些經常使用的元件,例如表、樹、進度條等,都不支援。對於需要更多飢陪元件型別的應用程式來說,我們需要從頭開始建立這些元件。這是一個很大的負擔。

Swing 概述

Java Swing 是 Java Foundation Classes(JFC)的一部分,它是試圖解決 AWT 缺點的一個嘗試。在 Swing 中,Sun 開發了一個經爛渣蠢過仔細設計的、靈活而強大的 GUI 工具包。不幸的是,這意味著我們又要花一些時間來學習 Swing 了,對於常見的情況來說,Swing 有些太復雜了。

Swing 是在 AWT 元件基礎上構建的。所有 Swing 元件實際上也是 AWT 的一部分。Swing 使用了 AWT 的事件模型和支援類,例如 Colors、Images 和 Graphics。Swing 元件、布局管理器以及事件總結如下(參見 清單 4、清單 5 和 清單 6)。正如您可以看到的一樣,這些元件集比 AWT 提供的元件集更為廣泛,與 SWT 元件集相比也毫不遜色。

SWT 概述

與 AWT 的概念相比,SWT 是一個低階的 GUI 工具包。JFace 是一組用來簡化使用 SWT 構建 GUI 的增強元件和工具服務。SWT 的構建者從 AWT 和 Swing 實現中學習了很多經驗,他們試圖構建一個集二者優點於一體而沒有二者的缺點的系統。從很多方面來說,他們已經成功了。

SWT 也是基於一個對等體實現的,在這一點上它與 AWT 非常類似。它克服了 AWT 所面臨的 LCD 的問題,方法如下:定義了一組控制元件,它們可以用來構建大部分辦公應用程式或開發者工具,然後可以按照逐個主機的原則,為特定主機所沒有提供的控制元件建立模擬控制元件(這與 Swing 類似)。對於大部分現代主機來說,幾乎所有的控制元件都是基於本地對等體的。這意味著基於 SWT 的 GUI 既具有主機外觀,又具有主機的效能。這樣就避免了使用 AWT 和 Swing 而引起的大部分問題。特定的主機具有一些低階功能控制元件,因此 SWT 提供了擴充(通常是模擬的)版本(通常使用 「C」 作為名字中的第一個字母),從而可以產生更一致的行為。

發動機的布局方式有哪幾種,各有什麼優勢

發動機布局方式
前置前驅 一般中低轎車用 部分抵擋梁好跑車
前置後驅 一般中高檔轎車用 部分中低檔跑車
前置全驅 一般高階豪華車用 部分跑車
中置後驅 一般高檔高階豪華跑車用 F1
中置全驅 一般高檔高階豪華跑車用
後置後驅 一般大型客車用 保時捷高階高檔豪華跑車
後置全驅 保時捷高階高檔豪華跑車
發動機 排列方式
直列 L型 一般用於四缸發動機 少數六缸發動機 像寶馬
V型發動機 一般六缸以上發動機用
W型發動機 一般12缸以上發動機用 比如大眾途銳 奧迪A8 布加迪
H型發動機 一般跑車用 比如保時捷 斯巴魯

java swing 布局方式有哪幾種

BorderLayout,
BoxLayout,
CardLayout,
DefaultMenuLayout,
FlowLayout,
GridBagLayout,
GridLayout,
GroupLayout
swing里常用的也有這些,至於每個具體的功能自己查一下API就可以了。

常用的離合器有哪幾種?各有什麼特點?

一、變極對數調速方法
這種調速方法是用改變定子繞組的接紅方式來改變籠型電動機定子極對數達到調速目的,特點如下:
1、具有較硬的機械特性,穩定性良好;
2、無轉差損耗,效率高;
3、接線簡單、控制方便、價格低;
4、有級調速,級差較大,不能獲得平滑調速;
5、可以與調壓調速、電磁轉差離合器配合使用,獲得較高效率的平滑調速特性。
本方法適用於不需要無級調速的生產機械,如金屬切削機床、升降機、起重裝置、風機、水泵等。
二、變頻調速方法
變頻調速是改變電動機定子電源的頻率,從而改變其同步轉速的調速方法。變頻調速系統主要裝置是提供變頻電源的變頻器,變頻器可分成交流-直流-交流變頻器和交流-交流變頻器兩大類,目前國內大都使用交-直-交變頻器。其特點:
1、效率高,調速過程中沒有附加損耗;
2、應用范圍廣,可用於籠型非同步電動機;
3、調速范圍大,特性硬,精度高;
4、技術復雜,造價高,維護檢修困難。
5、本方法適用於要求精度高、調速效能較好場合。
三、串級調速方法
串級調速是指繞線式電動機轉子迴路中串入可調節的附加電勢來改變電動機的轉差,達到調速的目的。大部分轉差功率被串入的附加電勢所吸收,再利用產生附加的裝置,把吸收的轉差功率返回電網或轉換能量加以利用。根據轉差功率吸收利用方式,串級調速可分為電機串級調速、機械串級調速及閘流體串級調速形式,多採用閘流體串級調速,其特點為:
1、可將調速過程中的轉差損耗回饋到電網或生產機械上,效率較高;
2、裝置容量與調速范圍成正比,投資省,適用於調速范圍在額定轉速70%-90%的生產機械上;
3、調速裝置故障時可以切換至全速執行,避免停產;
4、閘流體串級調速功率因數偏低,諧波影響較大。
5、本方法適合於風機、水泵及軋鋼機、礦井提升機、擠壓機上使用。
四、繞線式電動機轉子串電阻調速方法
繞線式非同步電動機轉子串入附加電阻,使電動機的轉差率加大,電動機在較低的轉速下執行。串入的電阻越大,電動機的轉速越低。此方法裝置簡單,控制方便,但轉差功率以發熱的形式消耗在電阻上。屬有級調速,機械特性較軟。
五、定子調壓調速方法
當改變電動機的定子電壓時,可以得到一組不同的機械特性曲線,從而獲得不同轉速。由於電動機的轉矩與電壓平方成正比,因此最大轉矩下降很多,其調速范圍較小,使一般籠型電動機難以應用。為了擴大調速范圍,調壓調速應採用轉子電阻值大的籠型電動機,如專供調壓調速用的力矩電動機,或者在繞線式電動機上串聯頻敏電阻。為了擴大穩定執行范圍,當調速在2:1以上的場合應採用反饋控制以達到自動調節轉速目的。
調壓調速的主要裝置是一個能提供電壓變化的電源,目前常用的調壓方式有串聯飽和電抗器、自耦變壓器以及閘流體調壓等幾種。閘流體調壓方式為最佳。調壓調速的特點:
1、調壓調速線路簡單,易實現自動控制;
2、調壓過程中轉差功率以發熱形式消耗在轉子電阻中,效率較低。
3、調壓調速一般適用於100KW以下的生產機械。
六、電磁調速電動機調速方法
電磁調速電動機由籠型電動機、電磁轉差離合器和直流勵磁電源(控制器)三部分組成。直流勵磁電源功率較小,通常由單相半波或全波閘流體整流器組成,改變閘流體的導通角,可以改變勵磁電流的大小。 電磁轉差離合器由電樞、磁極和勵磁繞組三部分組成。電樞和後者沒有機械聯絡,都能自由轉動。電樞與電動機轉子同軸聯接稱主動部分,由電動機帶動;磁極用聯軸節與負載軸對接稱從動部分。當電樞與磁極均為靜止時,如勵磁繞組通以直流,則沿氣隙圓周表面將形成若干對N、S極 *** 替的磁極,其磁通經過電樞。當電樞隨拖動電動機旋轉時,由於電樞與磁極間相對運動,因而使電樞感應產生渦流,此渦流與磁通相互作用產生轉矩,帶動有磁極的轉子按同一方向旋轉,但其轉速恆低於電樞的轉速N1,這是一種轉差調速方式,變動轉差離合器的直流勵磁電流,便可改變離合器的輸出轉矩和轉速。電磁調速電動機的調速特點:
1、裝置結構及控制線路簡單、執行可靠、維修方便;
2、調速平滑、無級調速;
3、對電網無諧影響;
4、速度失大、效率低。
5、本方法適用於中、小功率,要求平滑動、短時低速執行的生產機械。
七、液力耦合器調速方法
液力耦合器是一種液力傳動裝置,一般由泵輪和渦輪組成,它們統稱工作輪,放在密封殼體中。殼中充入一定量的工作液體,當泵輪在原動機帶動下旋轉時,處於其中的液體受葉片推動而旋轉,在離心力作用下沿著泵輪外環進入渦輪時,就在同一轉向上給渦輪葉片以推力,使其帶動生產機械運轉。液力耦合器的動力轉輸能力與殼內相對充液量的大小是一致的。在工作過程中,改變充液率就可以改變耦合器的渦輪轉速,作到無級調速,其特點為:
1、功率適應范圍大,可滿足從幾十千瓦至數千千瓦不同功率的需要;
2、結構簡單,工作可靠,使用及維修方便,且造價低;
3、尺寸小,能容大;
4、控制調節方便,容易實現自動控制。
5、本方法適用於風機、水泵的調速。

電氣簡圖連線線的布局方式有哪幾種?

⑴、水平布置:將裝置和元件按行布置,使得其連線線一般成水平布置。
⑵、垂直布置:將裝置或元件按列排列,連線線成垂直布置。
⑶、交叉布置:將相應的元件連線成對稱的布局。

常用的Inter接入方案有哪幾種? 各有什麼特點

電話撥號接入
傳輸介質 : 電話線終端
上行速率 : 512k—640k
下行數率 : 512k-1M
價格水平 : 非常便宜(48元包月)
適用場合 : 個人
穩定性 : 非常不穩定
提供商 : 中國移動、中國聯通
ISDN撥號
傳輸介質 :網路水晶線
上行速率 :640k-2M
下行數率 :1M-2M
價格水平 :便宜(70元左右)
適用場合 :對網路要求不高的個人
穩定性 :趨於穩定
提供商 :中國網通、中國電信、中國鐵通
租用線路(DDN專線接入)
傳輸介質 : MODEM
上行速率 : 1M-10M
下行數率 : 640k
價格水平 : 偏貴(80元包月左右)
適用場合 : 公司、個人上網
穩定性 : 非常穩定
提供商 : 中國鐵通
區域網接入
傳輸介質 : 伺服器
上行速率 : 512k-1M
下行數率 : 640k-2M
價格水平 : 偏貴(90元左右)
適用場合 : 辦公室
穩定性 : 不太穩定
提供商 : 中國移動、中國聯通、中國網通、中國電信
無線接入
傳輸介質 :無線網路
上行速率 :1M-5M
下行數率 :512k-1M
價格水平 :貴(120元左右包月)
適用場合 :經常出差或者旅遊的個人
穩定性 : 不穩定
提供商 : 暫無
Cable Modem接入
傳輸介質 :MODEM服務端
上行速率 :10M
下行數率 :1M
價格水平 :便宜
適用場合 :公司、家庭
穩定性 :非常穩定
提供商 :中國網通、中國電信、中國移動、中國聯通
光纖接入
傳輸介質 :光纖電纜
上行速率 :10M-100M
下行數率 :10M
價格水平 :非常貴
適用場合 :IDC/對網路要求極高的人群等穩定性 :最穩定了
提供商 :美國、日本提供商

換流方式有哪幾種,各有什麼特點?

換流就是電流從一條支路換向另一支路的過程.
換流方式有4種.
器件換流,利用全控器件的自關斷能力進行換流.全控型器件採用此換流方式.
電網換流,由電網提供換流電壓,只要把負的電網電壓加到欲關斷的器件上即可.
負載換流,由負載提供換流電壓,當負載為電容性負載即負載電流超前於負載電壓時,可實現負載換流.
強迫換流,設定附加換流電路,給欲關斷的閘流體施加反向電壓換流稱為強迫換流.通常是利用附加電容上的能量實現的,也稱電容換流.

❻ Java 插件開發SWT中布局。用的是gridData

SWT插件用於Java 圖形用戶界面開發的,可以去其官網下載與Eclipse版本相關的壓縮包。
本人使用的是Eclipse3.4,下載的SWT包是Designer_v6.7.0_for_Eclipse3.4.zip。(註:SWT必須與Eclipse版本要一致,下載SWT是要看清楚)。
將下載的SWT包解壓縮,解壓後有一個批處理文件和features、plugins文件夾。將這個批處理文件拷貝到eclipse目錄,雙擊運行。然後將該批處理文件刪除。將SWT解壓包中features、plugins文件夾中的內容全部拷貝到eclipse的相應目錄中。(註:有的資料上說:需要將eclipse目錄下的configuration目錄中,所有org.eclipse.*文件夾都刪除。我這樣試了,但是這樣做Eclipse根本無法啟動。所以我的這個方法中不需要這樣做,不知到是否與eclipse的版本有關,還需詳細考證)。
然後啟動eclipse,在file-new-other中如果看到designer選項,就證明SWT安裝成功了。
下來進行插件的注冊,我選擇的免費注冊,不過這樣需要填寫一個用戶的詳細資料,然後就會通過email收到一個注冊碼。步驟:window-Preferences-Designer-Registration and Activation。在select a proct to evaluate中選擇SWT-Designer。點擊next,然後填寫你的個人信息。然後就會通過email收到一個Activation key。重新執行上述注冊步驟,在Activation Key的文本框中輸入通過email收到的key就完成了SWT的免費注冊。

❼ SWT的瀏覽器,是全java的,還是基於IE內核的。

絕對不是java的,如果是那就叫java瀏覽器了。內核裡面有好多東西,只能說這個瀏覽器是用java語言寫的,但是內核就不清楚是誰的了。

閱讀全文

與javaswt嵌入瀏覽器相關的資料

熱點內容
有哪些可以督促自己的app 瀏覽:244
用USB傳輸視頻文件夾顯示為空 瀏覽:710
恢復文件軟體免費版手機 瀏覽:648
lg怎麼隱藏文件 瀏覽:836
蘋果免費讀書app推薦 瀏覽:497
劉駿微信 瀏覽:113
書旗舊版本80 瀏覽:467
教編程考什麼證 瀏覽:990
下載編程貓後哪裡有客服 瀏覽:13
如何編輯歌曲文件格式 瀏覽:638
cf無限領取cdk工具 瀏覽:350
如何讓手機文件保存到電腦上 瀏覽:459
sa資料庫默認密碼是多少 瀏覽:191
電腦正在查找文件 瀏覽:541
一個文件盒省內寄順豐多少錢 瀏覽:41
誅仙62坐騎怎麼升級到63 瀏覽:926
linux以日期查看日誌記錄 瀏覽:446
工業大數據是什麼東西 瀏覽:881
魅族note3怎麼重置網路 瀏覽:510
c語言程序設計模 瀏覽:92

友情鏈接