导航:首页 > 编程语言 > 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嵌入浏览器相关的资料

热点内容
什么软件打文件 浏览:53
数据库无数据变成0 浏览:899
名企笔试如何刷编程题 浏览:49
js跳到页面某地 浏览:550
jsp展示clob字段 浏览:779
nyx在网络上是什么意思 浏览:145
乐播农业app是什么 浏览:530
编程框架如何开发 浏览:136
金庸群侠传3修改代码 浏览:712
检察院的文件类别有哪些 浏览:793
怎么把九游残留数据删除 浏览:828
有什么女生主动聊天的app 浏览:436
有哪些可以督促自己的app 浏览:244
用USB传输视频文件夹显示为空 浏览:710
恢复文件软件免费版手机 浏览:648
lg怎么隐藏文件 浏览:836
苹果免费读书app推荐 浏览:497
刘骏微信 浏览:113
书旗旧版本80 浏览:467
教编程考什么证 浏览:990

友情链接