欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java-JFrame-swing嵌套瀏覽器的具體步驟

 更新時間:2017年10月21日 09:32:12   作者:lsyBlog  
下面小編就為大家?guī)硪黄狫ava-JFrame-swing嵌套瀏覽器的具體步驟。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

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

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

(1)主要步驟:

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

2、創(chuàng)建JFrame窗體,對窗體進(jìn)行基本的設(shè)置;
3、設(shè)置瀏覽器顯示的定位尺寸,并將瀏覽器添加到JFrame窗體中去:

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

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

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

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

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

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.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.util.ResizeFrame; 
import com.util.ScreenSize; 
 
import chrriis.common.UIUtils; 
import chrriis.dj.nativeswing.swtimpl.NativeInterface; 
import chrriis.dj.nativeswing.swtimpl.components.JWebBrowser; 
 
/** 
 * CS包瀏覽器,首先訪問的是項(xiàng)目首頁 
 * 
 * @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); 
  //add(webBrowserPanel, BorderLayout.CENTER); 
  // webBrowser.executeJavascript("javascrpit:window.location.); 
  // webBrowser.executeJavascript("alert('haha')"); //執(zhí)行Js代碼 
 
  UIUtils.setPreferredLookAndFeel(); 
  NativeInterface.open(); 
  SwingUtilities.invokeLater(new Runnable() { 
   public void run() { 
    frame = new JFrame(); 
    // 去掉窗口的裝飾 
    frame.setUndecorated(true); 
    // 采用指定的窗口裝飾風(fēng)格 
    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); 
    /** 
     * 插入瀏覽器窗體左邊的標(biāo)題 
     */
    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() { 
     // 鼠標(biāo)點(diǎn)擊關(guān)閉圖片,實(shí)現(xiàn)關(guān)閉窗體的功能 
     @Override
     public void mouseClicked(MouseEvent e) { 
      frame.dispose(); 
      // System.exit(0);//使用dispose();也可以關(guān)閉只是不是真正的關(guān)閉 
     } 
 
     // 鼠標(biāo)進(jì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); 
     } 
 
     // 鼠標(biāo)離開,換關(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() { 
     // 鼠標(biāo)點(diǎn)擊關(guān)閉圖片,實(shí)現(xiàn)關(guān)閉窗體的功能 
     @Override
     public void mouseClicked(MouseEvent e) { 
      // 判斷窗體當(dāng)前寬度,如果與計(jì)算機(jī)分辨率同樣寬,那么窗體寬度變?yōu)槟J(rèn)值,如果小于計(jì)算機(jī)分辨率寬度,那么窗體變?yōu)樽畲蠡@示 
      if (frame.getSize().getWidth() < ScreenSize.getScreenWidth()) { 
       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); 
      } 
 
     } 
 
     // 鼠標(biāo)進(jìn)入,換關(guān)閉的背景圖片 
     @Override
     public void mouseEntered(MouseEvent e) { 
      // 判斷窗體當(dāng)前寬度與計(jì)算機(jī)分辨率寬度大小 
      if (frame.getSize().getWidth() < ScreenSize.getScreenWidth()) { 
       //窗體寬度小于計(jì)算機(jī)分辨率寬度,圖片應(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); 
      } 
     } 
 
     // 鼠標(biāo)離開,換關(guān)閉的背景圖片 
     @Override
     public void mouseExited(MouseEvent e) { 
      // 判斷窗體當(dāng)前寬度與計(jì)算機(jī)分辨率寬度大小 
      if (frame.getSize().getWidth() < ScreenSize.getScreenWidth()) { 
       //窗體寬度小于計(jì)算機(jī)分辨率寬度,圖片應(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() { 
     // 鼠標(biāo)點(diǎn)擊關(guān)閉圖片,實(shí)現(xiàn)關(guān)閉窗體的功能 
     @Override
     public void mouseClicked(MouseEvent e) { 
      frame.setExtendedState(JFrame.ICONIFIED);// 最小化窗體 
     } 
 
     // 鼠標(biāo)進(jìn)入,換關(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); 
     } 
 
     // 鼠標(biāo)離開,換關(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ù)寬度進(jìn)行定位 
       */
      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);// 瀏覽器頂部最小化圖片定位 
      /** 
       * 瀏覽器寬度、高度進(jìn)行改變 
       */
      //設(shè)置瀏覽器距離頭部的距離高度 
      webBrowserPanel.setBounds(0, 29, browserWidth.intValue(), browserHeight.intValue()-29);     
     } 
    }); 
 
   } 
  }); 
  // 必須將下行代碼注釋掉,否則不能夠跳轉(zhuǎn)到此窗體 
  // NativeInterface.runEventPump(); 
 } 
 
 public static void main(String[] args) { 
  String url = "http://localhost:8080/NativeSwitingTest/user/user_list.html"; 
  String title = "測試CS包瀏覽器"; 
  EagleBrowser1 eagleBrowser = new EagleBrowser1(url, title); 
 } 
 
}

上述代碼中用到了獲取當(dāng)前計(jì)算機(jī)尺寸的工具類代碼如下:

package com.util; 
 
import java.awt.Dimension; 
import java.awt.Toolkit; 
/** 
 * 獲取當(dāng)前計(jì)算機(jī)分辨率的工具類 
 * @author admin 
 * 
 */
public class ScreenSize { 
  
 //獲取當(dāng)前計(jì)算機(jī)分辨率的寬度 
 public static Double getScreenWidth(){ 
  Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
  return screenSize.getWidth(); 
 } 
  
 //獲取當(dāng)前計(jì)算機(jī)分辨率的高度 
 public static Double getScreenHeight(){ 
  Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
  return screenSize.getHeight(); 
 } 
  
}

以上這篇Java-JFrame-swing嵌套瀏覽器的具體步驟就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論