java se嵌套在浏览器_Swing界面嵌套浏览器

该博客介绍如何在Java SE应用程序中使用Swing组件JWebBrowser来嵌入并显示Web内容。通过设置不同的可见性,可以实现Web浏览器窗口与自定义图片之间的切换。代码示例展示了如何初始化JWebBrowser,监听其导航事件以及处理窗口打开和关闭事件。
摘要由CSDN通过智能技术生成

package com.*;

import java.awt.BorderLayout;

import java.awt.Toolkit;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.io.File;

import java.util.Date;

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;

/**

* 主窗体

*

* @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;

private int type = 2;

/**

* 构造器

*/

public MainFrame() {

initData();

initGUI();

addListance();

}

private void initData() {

Toolkit toolkit = Toolkit.getDefaultToolkit();

this.setIconImage(new ImageIcon(System.getProperty("user.dir") + "\\5.jpg").getImage());

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.url);

webBrowser.setBarsVisible(false);

webBrowser.setMenuBarVisible(false);

webBrowser.setLocationBarVisible(false);

webBrowser.setButtonBarVisible(false);

webBrowser.setStatusBarVisible(false);

ImageIcon icon = new ImageIcon(System.getProperty("user.dir") + "\\5.jpg");

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();

}

@Override

public void windowOpening(WebBrowserWindowOpeningEvent arg0) {

lastTime = new Date().getTime();

}

@Override

public void windowClosing(WebBrowserEvent arg0) {

lastTime = new Date().getTime();

}

@Override

public void titleChanged(WebBrowserEvent arg0) {

lastTime = new Date().getTime();

}

@Override

public void statusChanged(WebBrowserEvent arg0) {

lastTime = new Date().getTime();

}

@Override

public void locationChanging(WebBrowserNavigationEvent arg0) {

lastTime = new Date().getTime();

}

@Override

public void locationChanged(WebBrowserNavigationEvent arg0) {

lastTime = new Date().getTime();

}

@Override

public void locationChangeCanceled(WebBrowserNavigationEvent arg0) {

lastTime = new Date().getTime();

}

@Override

public void loadingProgressChanged(WebBrowserEvent arg0) {

lastTime = new Date().getTime();

}

@Override

public void commandReceived(WebBrowserCommandEvent arg0) {

lastTime = new Date().getTime();

}

});

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);

}

});

}

/**

* 屏保切换

*/

public void change(final int type) {

lastTime = new Date().getTime();

if (type == this.type) {

return;

}

this.type = type;

SwingUtilities.invokeLater(new Runnable() {

public void run() {

if (type == 1) {

webBrowser.setVisible(false);

panel.add(lbl, BorderLayout.CENTER);

} else {

panel.remove(lbl);

webBrowser.setVisible(true);

}

panel.validate();

}

});

}

public static void main(String[] args) {

UIUtils.setPreferredLookAndFeel();

NativeInterface.open();

SwingUtilities.invokeLater(new Runnable() {

public void run() {

MainFrame frame = new MainFrame();

frame.setVisible(true);

new ChangeWait(frame).tryStart();

}

});

NativeInterface.runEventPump();

}

}jar包下载地址 http://download.csdn.net/detail/daixinmei/7827723

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值