日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

java swing web_Java-JFrame-swing嵌套浏览器步骤

發(fā)布時間:2025/3/8 HTML 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java swing web_Java-JFrame-swing嵌套浏览器步骤 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Java-JFrame-swing嵌套瀏覽器步驟

一、使用swing嵌套瀏覽器要實現(xiàn)的功能:

通過java的swing實現(xiàn)在一個窗體中嵌套一個瀏覽器,可以在這個瀏覽器中將另一個項目的內(nèi)容顯示出來,只需要回去另一個項目首頁的url即可,這樣另一個項目就可以在swing嵌套的瀏覽器中進行正常的顯示了;

二、下面的瀏覽器工具類中的方法在使用的時候,只需要從另一個項目的服務(wù)端獲取另一個項目的首頁stirng類型的url地址和瀏覽器左上角要顯示的string類型的標題兩個參數(shù)即可,參數(shù)只有url和title兩個;

(1)主要步驟:

1、通過以下java代碼實現(xiàn)創(chuàng)建瀏覽器;

2、創(chuàng)建JFrame窗體,對窗體進行基本的設(shè)置;

3、設(shè)置瀏覽器顯示的定位尺寸,并將瀏覽器添加到JFrame窗體中去:

非常注意:將瀏覽器添加到窗體的java代碼一定在將瀏覽器頂部工具欄背景圖片添加到窗體的java代碼之后,否則瀏覽器內(nèi)容顯示不出來;

4、設(shè)置瀏覽器頂部工具欄的左側(cè)圖標;

5、設(shè)置瀏覽器頂部工具欄的左側(cè)標題文字;

6、設(shè)置瀏覽器頂部工具欄右側(cè)最小化、最大化、關(guān)閉等圖片以及鼠標的各種事件;

7、為窗體添加一個事件:當窗體的尺寸發(fā)生變化時,就會執(zhí)行方法體中的Java代碼;因為窗體的大小是可以變化的;

8、非常重要的是:瀏覽器工具類中一定要下面的一行代碼注釋掉,否則其他窗體調(diào)用此窗體時,不會彈出此窗體;

// 必須將下行代碼注釋掉,否則不能夠跳轉(zhuǎn)到此窗體

// NativeInterface.runEventPump();

(2)瀏覽器的工具類全部代碼如下:

package com;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.Image;

import java.awt.Rectangle;

import java.awt.event.ComponentAdapter;

import java.awt.event.ComponentEvent;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JLayeredPane;

import javax.swing.JPanel;

import javax.swing.JRootPane;

import javax.swing.SwingUtilities;

import com.listener.XZWebBrowserListener;

import com.util.ScreenSize;

import chrriis.common.UIUtils;

import chrriis.dj.nativeswing.swtimpl.NativeInterface;

import chrriis.dj.nativeswing.swtimpl.components.JWebBrowser;

/**

* CS包瀏覽器,首先訪問的是項目首頁

*

* @author admin

*

*/

public class EagleBrowser1 extends JPanel {

private static final long serialVersionUID = 1L;

private JPanel webBrowserPanel;

private JWebBrowser webBrowser;

private JFrame frame;

private Double browserWidth;// 窗體寬度

private Double browserHeight;//窗體高度

public EagleBrowser1() {

}

// 構(gòu)造方法,傳遞url和title可創(chuàng)建CS包容瀏覽器窗體

public EagleBrowser1(String url, String title) {

/**

* 創(chuàng)建瀏覽器

*/

webBrowserPanel = new JPanel(new BorderLayout());

webBrowser = new JWebBrowser();

webBrowser.navigate(url);

webBrowser.setButtonBarVisible(false);

webBrowser.setMenuBarVisible(false);

webBrowser.setBarsVisible(false);

webBrowser.setStatusBarVisible(false);

webBrowserPanel.add(webBrowser, BorderLayout.CENTER);

XZWebBrowserListener listener = new XZWebBrowserListener();

webBrowser.addWebBrowserListener(listener );

//add(webBrowserPanel, BorderLayout.CENTER);

// webBrowser.executeJavascript("javascrpit:window.location.href='http://www.baidu.com'");

// webBrowser.executeJavascript("alert('haha')"); //執(zhí)行Js代碼

UIUtils.setPreferredLookAndFeel();

NativeInterface.open();

SwingUtilities.invokeLater(new Runnable() {

public void run() {

//JFrame.setDefaultLookAndFeelDecorated(true);

frame = new JFrame();

// 去掉窗口的裝飾

frame.setUndecorated(true);

// 采用指定的窗口裝飾風格

frame.getRootPane().setWindowDecorationStyle(JRootPane.NONE);

frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

frame.setLocationByPlatform(true);

frame.setLayout(null);

// 注意可見性、窗體大小、窗體居中定位,這三個最好按照此順序書寫

// 設(shè)置窗體可見

frame.setVisible(true);

frame.setResizable(true);

// 設(shè)置窗體的寬度、高度

frame.setSize(1600, 900);

// 設(shè)置窗體居中顯示

frame.setLocationRelativeTo(frame.getOwner());

/**

* 獲取窗體的總寬

*/

browserWidth = frame.getSize().getWidth();

browserHeight = frame.getSize().getHeight();

/**

* 插入瀏覽器頭部窄條的背景圖片

*/

// 創(chuàng)建具有分層的JLayeredPane

JLayeredPane layeredPane = new JLayeredPane();

layeredPane.setBounds(0, 0, browserWidth.intValue(), 40);

// 添加分層的JLayeredPane

frame.getContentPane().add(layeredPane,BorderLayout.CENTER);

// 創(chuàng)建圖片對象

ImageIcon img = new ImageIcon(EagleBrowser1.class.getResource("/images/browser_head.jpg"));

// 設(shè)置圖片在窗體中顯示的寬度、高度

img.setImage(img.getImage().getScaledInstance(browserWidth.intValue(), 40, Image.SCALE_DEFAULT));

JPanel panel = new JPanel();

panel.setBounds(0, 0, browserWidth.intValue(), 40);

layeredPane.add(panel, JLayeredPane.DEFAULT_LAYER);//添加到最底層

JLabel lblNewLabel = new JLabel("");

panel.add(lblNewLabel);

lblNewLabel.setIcon(img);

/**

* 將網(wǎng)頁添加到窗體frame中來

*/

//設(shè)置瀏覽器距離頭部的距離高度

webBrowserPanel.setBounds(0, 29, browserWidth.intValue(), browserHeight.intValue()-29);

// 添加網(wǎng)頁的JPanel,注意:定要將此行代碼放置在添加JLayeredPane以下

frame.getContentPane().add(webBrowserPanel, BorderLayout.CENTER);

/**

* 插入瀏覽器頭部左邊的圖片

*/

// 創(chuàng)建圖片對象

ImageIcon headLeftImg = new ImageIcon(EagleBrowser1.class.getResource("/images/browser_head_left.jpg"));

// 設(shè)置圖片在窗體中顯示的寬度、高度

headLeftImg.setImage(headLeftImg.getImage().getScaledInstance(24, 40, Image.SCALE_DEFAULT));

JPanel headLeftPanel = new JPanel();

headLeftPanel.setBounds(0, -5, 24, 40);

layeredPane.add(headLeftPanel, JLayeredPane.MODAL_LAYER);//添加到比背景圖片高一層的層次中

JLabel headLeftLabel = new JLabel("");

headLeftPanel.add(headLeftLabel);

headLeftLabel.setIcon(headLeftImg);

/**

* 插入瀏覽器窗體左邊的標題

*/

JPanel titlePanel = new JPanel();

titlePanel.setBounds(32, 6, browserWidth.intValue()-150, 20);

layeredPane.add(titlePanel, JLayeredPane.MODAL_LAYER);

//設(shè)置JPanel中文字對齊方式為左對齊

titlePanel.setLayout(new FlowLayout(FlowLayout.LEFT));

//設(shè)置JPanel為透明的,這樣可以讓JPanel后面的背景顏色顯示出來

titlePanel.setBackground(null);

titlePanel.setOpaque(false);

JLabel titleLbel = new JLabel();

titleLbel.setText(title);

titleLbel.setSize(100, 20);

titleLbel.setHorizontalAlignment(JLabel.LEFT);

titleLbel.setFont(new Font("微軟雅黑", 0, 12));

titleLbel.setForeground(Color.white);

titlePanel.add(titleLbel);

/**

* 插入右邊關(guān)閉背景圖片及功能

*/

// 創(chuàng)建圖片對象

ImageIcon headCloseImg = new ImageIcon(EagleBrowser1.class.getResource("/images/browser_close_01.jpg"));

// 設(shè)置圖片在窗體中顯示的寬度、高度

headCloseImg.setImage(headCloseImg.getImage().getScaledInstance(40, 40, Image.SCALE_DEFAULT));

JPanel headClosePanel = new JPanel();

headClosePanel.setBounds(browserWidth.intValue() - 40, -5, 40, 40);

layeredPane.add(headClosePanel, JLayeredPane.MODAL_LAYER);

JLabel headCloseLabel = new JLabel("");

headClosePanel.add(headCloseLabel);

headCloseLabel.setIcon(headCloseImg);

headCloseLabel.addMouseListener(new MouseAdapter() {

// 鼠標點擊關(guān)閉圖片,實現(xiàn)關(guān)閉窗體的功能

@Override

public void mouseClicked(MouseEvent e) {

frame.dispose();//此種方式的關(guān)閉只是關(guān)閉了窗體,后臺程序還是沒有真正關(guān)閉

System.exit(0);//此種方式是真正的關(guān)閉

}

// 鼠標進入,換關(guān)閉的背景圖片

@Override

public void mouseEntered(MouseEvent e) {

// 創(chuàng)建圖片對象

ImageIcon closeImg1 = new ImageIcon(EagleBrowser1.class.getResource("/images/browser_close_02.jpg"));

// 設(shè)置圖片在窗體中顯示的寬度、高度

closeImg1.setImage(closeImg1.getImage().getScaledInstance(40, 40, Image.SCALE_DEFAULT));

headCloseLabel.setIcon(closeImg1);

}

// 鼠標離開,換關(guān)閉的背景圖片

@Override

public void mouseExited(MouseEvent e) {

// 創(chuàng)建圖片對象

ImageIcon headCloseImg = new ImageIcon(

EagleBrowser1.class.getResource("/images/browser_close_01.jpg"));

// 設(shè)置圖片在窗體中顯示的寬度、高度

headCloseImg.setImage(headCloseImg.getImage().getScaledInstance(40, 40, Image.SCALE_DEFAULT));

headCloseLabel.setIcon(headCloseImg);

}

});

/**

* 插入右邊最大化背景圖片及功能

*/

// 創(chuàng)建圖片對象

ImageIcon headMaxImg = new ImageIcon(EagleBrowser1.class.getResource("/images/browser_middle_01.jpg"));

// 設(shè)置圖片在窗體中顯示的寬度、高度

headMaxImg.setImage(headMaxImg.getImage().getScaledInstance(40, 40, Image.SCALE_DEFAULT));

JPanel headMaxPanel = new JPanel();

headMaxPanel.setBounds(browserWidth.intValue() - 40 - 40, -5, 40, 40);

layeredPane.add(headMaxPanel, JLayeredPane.MODAL_LAYER);

JLabel headMaxLabel = new JLabel("");

headMaxPanel.add(headMaxLabel);

headMaxLabel.setIcon(headMaxImg);

headMaxLabel.addMouseListener(new MouseAdapter() {

// 鼠標點擊關(guān)閉圖片,實現(xiàn)關(guān)閉窗體的功能

@Override

public void mouseClicked(MouseEvent e) {

// 判斷窗體當前寬度,如果與計算機分辨率同樣寬,那么窗體寬度變?yōu)槟J值,如果小于計算機分辨率寬度,那么窗體變?yōu)樽畲蠡@示

if (frame.getSize().getWidth() < ScreenSize.getScreenWidth()) {

//加入此行代碼,可以讓窗體最大化不會遮擋住桌面上底部的工具欄;

frame.setMaximizedBounds(new Rectangle(0, 1, ScreenSize.getScreenWidth().intValue(), ScreenSize.getScreenHeight().intValue()));

frame.setExtendedState(JFrame.MAXIMIZED_BOTH);// 窗體最大化

// 創(chuàng)建圖片對象

ImageIcon maxImg1 = new ImageIcon(EagleBrowser1.class.getResource("/images/browser_max_01.jpg"));

// 設(shè)置圖片在窗體中顯示的寬度、高度

maxImg1.setImage(maxImg1.getImage().getScaledInstance(40, 40, Image.SCALE_DEFAULT));

headMaxLabel.setIcon(maxImg1);

} else {

frame.setSize(1600, 900);

frame.setLocationRelativeTo(frame.getOwner());

// 創(chuàng)建圖片對象

ImageIcon maxImg1 = new ImageIcon(EagleBrowser1.class.getResource("/images/browser_middle_01.jpg"));

// 設(shè)置圖片在窗體中顯示的寬度、高度

maxImg1.setImage(maxImg1.getImage().getScaledInstance(40, 40, Image.SCALE_DEFAULT));

headMaxLabel.setIcon(maxImg1);

}

}

// 鼠標進入,換關(guān)閉的背景圖片

@Override

public void mouseEntered(MouseEvent e) {

// 判斷窗體當前寬度與計算機分辨率寬度大小

if (frame.getSize().getWidth() < ScreenSize.getScreenWidth()) {

//窗體寬度小于計算機分辨率寬度,圖片應(yīng)顯示中間那種

// 創(chuàng)建圖片對象

ImageIcon maxImg1 = new ImageIcon(EagleBrowser1.class.getResource("/images/browser_middle_02.jpg"));

// 設(shè)置圖片在窗體中顯示的寬度、高度

maxImg1.setImage(maxImg1.getImage().getScaledInstance(40, 40, Image.SCALE_DEFAULT));

headMaxLabel.setIcon(maxImg1);

}else{

// 創(chuàng)建圖片對象

ImageIcon maxImg1 = new ImageIcon(EagleBrowser1.class.getResource("/images/browser_max_02.jpg"));

// 設(shè)置圖片在窗體中顯示的寬度、高度

maxImg1.setImage(maxImg1.getImage().getScaledInstance(40, 40, Image.SCALE_DEFAULT));

headMaxLabel.setIcon(maxImg1);

}

}

// 鼠標離開,換關(guān)閉的背景圖片

@Override

public void mouseExited(MouseEvent e) {

// 判斷窗體當前寬度與計算機分辨率寬度大小

if (frame.getSize().getWidth() < ScreenSize.getScreenWidth()) {

//窗體寬度小于計算機分辨率寬度,圖片應(yīng)顯示中間那種

// 創(chuàng)建圖片對象

ImageIcon maxImg1 = new ImageIcon(EagleBrowser1.class.getResource("/images/browser_middle_01.jpg"));

// 設(shè)置圖片在窗體中顯示的寬度、高度

maxImg1.setImage(maxImg1.getImage().getScaledInstance(40, 40, Image.SCALE_DEFAULT));

headMaxLabel.setIcon(maxImg1);

}else{

// 創(chuàng)建圖片對象

ImageIcon maxImg1 = new ImageIcon(EagleBrowser1.class.getResource("/images/browser_max_01.jpg"));

// 設(shè)置圖片在窗體中顯示的寬度、高度

maxImg1.setImage(maxImg1.getImage().getScaledInstance(40, 40, Image.SCALE_DEFAULT));

headMaxLabel.setIcon(maxImg1);

}

}

});

/**

* 插入右邊最小化背景圖片及功能

*/

// 創(chuàng)建圖片對象

ImageIcon headMinImg = new ImageIcon(EagleBrowser1.class.getResource("/images/browser_min_01.jpg"));

// 設(shè)置圖片在窗體中顯示的寬度、高度

headMinImg.setImage(headMinImg.getImage().getScaledInstance(40, 40, Image.SCALE_DEFAULT));

JPanel headMinPanel = new JPanel();

headMinPanel.setBounds(browserWidth.intValue() - 40 - 40 - 40, -5, 40, 40);

layeredPane.add(headMinPanel, JLayeredPane.MODAL_LAYER);

JLabel headMinLabel = new JLabel("");

headMinPanel.add(headMinLabel);

headMinLabel.setIcon(headMinImg);

headMinLabel.addMouseListener(new MouseAdapter() {

// 鼠標點擊關(guān)閉圖片,實現(xiàn)關(guān)閉窗體的功能

@Override

public void mouseClicked(MouseEvent e) {

frame.setExtendedState(JFrame.ICONIFIED);// 最小化窗體

}

// 鼠標進入,換關(guān)閉的背景圖片

@Override

public void mouseEntered(MouseEvent e) {

// 創(chuàng)建圖片對象

ImageIcon mainImg1 = new ImageIcon(EagleBrowser1.class.getResource("/images/browser_min_02.jpg"));

// 設(shè)置圖片在窗體中顯示的寬度、高度

mainImg1.setImage(mainImg1.getImage().getScaledInstance(40, 40, Image.SCALE_DEFAULT));

headMinLabel.setIcon(mainImg1);

}

// 鼠標離開,換關(guān)閉的背景圖片

@Override

public void mouseExited(MouseEvent e) {

// 創(chuàng)建圖片對象

ImageIcon headMinImg = new ImageIcon(EagleBrowser1.class.getResource("/images/browser_min_01.jpg"));

// 設(shè)置圖片在窗體中顯示的寬度、高度

headMinImg.setImage(headMinImg.getImage().getScaledInstance(40, 40, Image.SCALE_DEFAULT));

headMinLabel.setIcon(headMinImg);

}

});

/**

* 設(shè)置檢測窗體大小發(fā)生變化的事件

*/

frame.addComponentListener(new ComponentAdapter() {

@Override

public void componentResized(ComponentEvent e) {

/**

* 獲取尺寸變化后的窗體的寬度、高度

*/

browserWidth = frame.getSize().getWidth();

browserHeight = frame.getSize().getHeight();

/**

* 瀏覽器頂部窄背景圖片寬度改變

*/

layeredPane.setBounds(0, -5, browserWidth.intValue(), 34);

titlePanel.setBounds(32, 6, browserWidth.intValue()-150, 20);

// 創(chuàng)建圖片對象

ImageIcon img1 = new ImageIcon(EagleBrowser1.class.getResource("/images/browser_head.jpg"));

// 設(shè)置圖片在窗體中顯示的寬度、高度

img1.setImage(

img1.getImage().getScaledInstance(browserWidth.intValue(), 40, Image.SCALE_DEFAULT));

panel.setBounds(0, -5, browserWidth.intValue(), 40);

panel.add(lblNewLabel);

lblNewLabel.setIcon(img1);

/**

* 瀏覽器頂部窄條右側(cè)最小化、最大化、關(guān)閉按鈕圖片根據(jù)寬度進行定位

*/

headClosePanel.setBounds(browserWidth.intValue() - 40, -5, 40, 40);// 瀏覽器頂部關(guān)閉圖片定位

headMaxPanel.setBounds(browserWidth.intValue() - 40 - 40, -5, 40, 40);// 瀏覽器頂部最大化圖片定位

headMinPanel.setBounds(browserWidth.intValue() - 40 - 40 - 40, -5, 40, 40);// 瀏覽器頂部最小化圖片定位

/**

* 瀏覽器寬度、高度進行改變

*/

//設(shè)置瀏覽器距離頭部的距離高度

webBrowserPanel.setBounds(0, 29, browserWidth.intValue(), browserHeight.intValue()-29);

}

});

}

});

// 必須將下行代碼注釋掉,否則不能夠跳轉(zhuǎn)到此窗體

// NativeInterface.runEventPump();

}

public static void main(String[] args) {

String url = "http://www.hao123.com";

String title = "測試CS包瀏覽器";

EagleBrowser1 eagleBrowser = new EagleBrowser1(url, title);

}

}

上述代碼中用到了獲取當前計算機尺寸的工具類代碼如下:

package com.util;

import java.awt.Dimension;

import java.awt.Toolkit;

/**

* 獲取當前計算機分辨率的工具類

* @author admin

*

*/

public class ScreenSize {

//獲取當前計算機分辨率的寬度

public static Double getScreenWidth(){

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

return screenSize.getWidth();

}

//獲取當前計算機分辨率的高度

public static Double getScreenHeight(){

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

return screenSize.getHeight();

}

}

總結(jié)

以上是生活随笔為你收集整理的java swing web_Java-JFrame-swing嵌套浏览器步骤的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。