`
hjwromantic
  • 浏览: 26608 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

java之迷你浏览器

 
阅读更多

迷你浏览器预览视图:

代码如下:

package mini_browser;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SmallBrowser extends JFrame implements ActionListener
{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	JPanel $jpanel; 
	SWTPane $SWTPane; 
	//创建弹出菜单
	PopupMenu popup=new PopupMenu();
	//创建菜单
	Menu jm=new Menu("弹出消息");
	//创建菜单项数组
	MenuItem[] item ={new MenuItem("警告消息"),new MenuItem("信息消息"),
					  new MenuItem("错误消息"),new MenuItem("退出程序"),
					  new MenuItem("显示窗口"),new MenuItem("重新访问")};
	//定义SystemTray成员变量
	SystemTray tray;
	//定义TrayIcon成员变量
	TrayIcon trayIcon;
	public SmallBrowser()
	{
		$jpanel = new JPanel(); 
		$SWTPane = new SWTPane(); 
		//$jpanel.add($SWTPane); 
		
		//循环对菜单项进行处理
		for(int i=0;i<item.length;i++)
		{
			//为菜单乡项注册监听器
			item[i].addActionListener(this);
			//将菜单项数组中前3个菜单项添加进"弹出消息"菜单中
			//if(i<3)	jm.add(item[i]);
		}
		
		//将弹出消息菜单与退出程序菜单项添加进弹出菜单
		//popup.add(jm);
		popup.add(item[5]);
		popup.add(item[4]);
		popup.add(item[3]);
		
		
		
		// 判断当前操作系统是否支持系统托盘
		if (SystemTray.isSupported())
		{
			//通过静态方法getSystemTray()得到系统托盘
			tray = SystemTray.getSystemTray();
			//加载图象
			Image image = Toolkit.getDefaultToolkit().getImage("d:/icon.jpg");
			//创建TrayIcon对象得到托盘图标
			trayIcon=new TrayIcon(image,"提示信息",popup);
			//设置托盘图标将自动设置尺寸
			trayIcon.setImageAutoSize(true);
			try
			{//将托盘图标设置到系统托盘中
				tray.add(trayIcon);
			}
			catch(AWTException e)
			{
				e.printStackTrace();
			}
			//为托盘图标注册监听器
			trayIcon.addActionListener(this);
		}
		//设置窗体关闭按扭所执行的动作
		this.addWindowListener(
			new WindowAdapter()
			{
				public void windowClosing(WindowEvent e)
				{
					//将窗体隐藏
					SmallBrowser.this.hide();
				}
			});
		//设置窗体标题、大小位置以及可见性
		//this.add($jpanel); 
		Container $Container = this.getContentPane(); 
		$Container.add($SWTPane,BorderLayout.CENTER); 
		
		//$jpanel.add($Container); 
		//this.add($jpanel);
		this.setTitle("jplogic迷你浏览器"); 
		this.setExtendedState(JFrame.MAXIMIZED_BOTH); 
		//this.setBounds(100,100,200,100); 
		this.setVisible(true); 
	}
	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource()==item[0])
		{//点击警告消息菜单项执行的动作
			//弹出警告消息提示框
			trayIcon.displayMessage("警告","这是警告消息",TrayIcon.MessageType.WARNING);
		}
		else if(e.getSource()==item[1])
		{//点击信息消息菜单项执行的动作
			//弹出信息消息提示框
			trayIcon.displayMessage("信息","这是信息消息",TrayIcon.MessageType.INFO);
		}
		else if(e.getSource()==item[2])
		{//点击错误消息菜单项执行的动作
			//弹出错误消息提示框
			trayIcon.displayMessage("错误","这是错误消息",TrayIcon.MessageType.ERROR);
		}
		else if(e.getSource()==item[3])
		{//点击退出程序菜单项执行的动作
			//结束程序安全退出
			System.exit(0);
		}
		else if(e.getSource()==item[4])
		{
			//显示窗口
			this.show(true);
			//System.exit(0);
		}
		else if(e.getSource()==item[5])
		{
			//重新访问
			this.show(true);
			//System.exit(0);
		}
		else if(e.getSource()==trayIcon)
		{//双击托盘图标执行的代码
			//将窗体按原来的方式显示出来
			this.show(true);
		}
	}
	public static void main(String args[])
	{
		new SmallBrowser();
	}
}
package mini_browser;

import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Panel;
//import javax.swing.JFrame;

import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class SWTPane extends Panel 
{
	private static final long serialVersionUID = 1L;
	DisplayThread displayThread; 
	private Canvas canvas;
	 
	public SWTPane() 
	{
		displayThread=new DisplayThread();
		displayThread.start();
		canvas = new Canvas();
		setLayout( new BorderLayout() );
		add( canvas, BorderLayout.CENTER );
	}
	 
	public void addNotify() 
	{
		super.addNotify();
		Display dis=displayThread.getDisplay();
		dis.syncExec
		(
			new Runnable() 
			{
				public void run() 
				{
					Shell shell = SWT_AWT.new_Shell(displayThread.getDisplay(),canvas);
					shell.setLayout( new FillLayout());
					final Browser browser = new Browser(shell, SWT.NONE);
					browser.setLayoutData(BorderLayout.CENTER);
					browser.setUrl("http://localhost:8080/jplogic");
				}
			} 
		);
	}
	 
}


分享到:
评论

相关推荐

    迷你浏览器

    适合新手入门的一款迷你浏览器,支持程序内部打开或者调用系统内置浏览器打开输入的网址,以及网络是否可用检测等功能

    java应用软件程序设计

    125 实例45 选择字体 126 实例46 UDP与TCP/IP的简单应用 129 实例47 聊天室 131 实例48 浏览FTP 136 实例49 局域网广播 147 实例50 建立HTTP连接 151 实例51 迷你浏览器 152 实例52 扫描...

    h_JAVA 2应用编程150例.rar

    实例51 迷你浏览器 152 实例52 扫描应用端口 154 实例53 监控HTTP 155 实例54 收发电子邮件 156 实例55 一个简单的代理服务器 164 实例56 扫描网站信息 173 实例57 远程方法调用 174 实例58 调用JINI方法 176 第5...

    CSC611M-Basic-Web-Browser:用 Java 实现的基本 Web 浏览器

    CSC611M-Basic-Web-Browser 用 Java 实现的基本 Web 浏览器关于由 Kyle DELA CRUZ、Kristine KALAW、Kevin RIVERA 和 Darren SAPALO 编写的 CSC611M (ADVANOS) 课程 AY2014-2015,第 2 学期的迷你练习

    迷你天猫商城是一个基于SSM框架的综合性B2C电商平台

    迷你天猫商城是一个基于SSM框架的综合性B2C电商平台,需求设计主要参考天猫商城的购物流程:用户从注册开始,到完成登录,浏览商品,加入购物车,进行下单,确认收货,评价等一系列操作。 作为模拟天猫商城系统的...

    Java版QQ签到源码-GcExcel-Java:用于Java的高速Excel电子表格API

    您可以使用多种功能,例如导入电子表格、计算数据、查询、生成和导出任何电子表格、添加排序、过滤、格式设置、条件格式设置和数据验证、分组、迷你图、图表、形状、图片、切片器、注释、超链接、主题等。...

    java外卖系统源码-js13k-minipunk:js13k-迷你朋克

    java外卖系统源码迷你朋克 2020 js13kGames 竞赛的简短 3D 动作游戏。 邪恶的 404 Megacorp 威胁要接管互联网。 你必须阻止他们! 在这里播放: 控制:WASD - 移动 左键单击 - 攻击 右键单击​​ - 缩放空格键 - ...

    ubbeditor.rar_Java 8_UBBEditor _ubbedit

    1.迷你UBBEditor 经压缩存储后小于20KB,载入的时间可以忽略不计。2.兼容UBBEditor 可以良好的运行在 IE6,7,8 Safari, Firefox, Chrome 等浏览器中。3.安全UBBEditor 在编辑文本内容的格式后,所产生的是UBB代码,.....

    ubbeditor.rar_Java 8_ubb编辑器源码

    迷你UBBEditor在线编辑器 v1.0,具有体积小巧,兼容性好(支持IE6,7,8 Safari, Firefox, Chrome 等众多浏览器)、安全性高,用它产生的是UBB代码,如果在网页中输出显示时,需要通过服务器脚本来解析这些代码,还有...

    java安卓辅助源码-github_arsenal:github军火库

    java安卓辅助源码 github_arsenal github军火库 漏洞及渗透练习平台: WebGoat漏洞练习环境 Damn Vulnerable Web Application(漏洞练习平台) 数据库注入练习平台 用node编写的漏洞练习平台,like OWASP Node Goat ...

    Java消灭星星简单小游戏源码-player:音频播放器和管理应用程序

    不相关的迷你应用程序的集合。 图像浏览器、0-pain 媒体库创建器、文件重命名器等。 如果您了解 Java/Kotlin,您就可以使用简单的文本编辑器和几十行代码来制作自己的应用程序 - 无需 JDK,无需 IDE,也无需创建和...

    java8stream源码-alexa-avs-raspberry-pi:该项目演示了如何使用Java客户端(在RaspberryPi上运行)

    浏览器访问网站来获取使用 Amazon 授权代码的登录。 本指南提供了获取示例代码、依赖项以及在 Pi 上运行参考实现所需的硬件的分步说明。 入门 您需要的硬件 树莓派 2(B 型) - 用于 Raspberry Pi 的微型 USB 电源线...

    xheditor 1.2.2.zip

    完全基于JavaScript开发,您可以应用在任何的服务端语言环境下,例如:PHP、ASP、ASP.NET、JAVA等。可以在您的CMS、博客、论坛、商城等互联网平台上完美的嵌入运行,能够非常灵活简单的和您的系统实现完美的无缝衔接...

    xhEditor(可视化HTML编辑器) v1.2.1官方最新版.rar

    xhEditor是一个基于jQuery开发的简单迷你并且高效的在线可视化HTML编辑器,基于网络访问并且兼容IE 6.0 ,Firefox 3.0 ,Opera 9.6 ,Chrome 1.0 ,Safari 3.22 。xhEditor完全基于Javascript开发,您可以应用在任何的...

    gotoB:一个.min.js统治一切

    迷你购物车:-。安装goto?用Java语言编写。 您可以通过采购预构建文件gotoB.min.js在浏览器中使用它。 &lt; script src =" gotoB.min.js " &gt; &lt;/ script &gt; 或者,您可以使用此链接使用提供的最新版本。 &...

    todo_challenge

    任务是使用Javascript,AngularJS和Karma和Protractor来构建Todo列表作为迷你前端应用程序进行测试。 不必使用数据库,因为前端更为重要。 赫鲁库 使用的技术 Java脚本 AngularJS 节点服务器 Npm&Bower 因果与量...

    Day.js 2kB的时间日期库 Moment.js 的 轻量化方案

    快速 2kB 替代 Moment.js具有相同的现代 API。Day.js 是一个极简主义的 JavaScript 库,它使用与 Moment 兼容.js API 解析、验证、操作和显示现代浏览器的日期和时间。...2kb 迷你图书馆。 支持所有浏览器

    pathX:CSE219的pathX小游戏

    该应用程序将建立在 Richard McKenna 教授创建的迷你游戏框架之上。 游戏概要 你是一个跨国犯罪狂潮中的逃亡司机,偷钱来支付你的学费! 逃离警察、土匪和僵尸,穿过街道网络,到达您的安全屋。 强盗会拿走你的钱,...

    prog-mats-js:添加一堆脚本化的东西。 该名称绝对不是Advance Content的同义词

    这是JS版本要获得进度材料的完整体验,请安装MEEPofFaith/prog-mats-java 。这将不再保留在mod浏览器中。进步材料添加一堆脚本化的东西。 该名称肯定由“ Advance”和“ Content”的同义词组成。内容Mindron ...

Global site tag (gtag.js) - Google Analytics