<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java究竟怎么玩?

      天地程序已定棋,人間大數待變局

        博客園  :: 首頁  :: 新隨筆  :: 聯系 :: 訂閱 訂閱  :: 管理
          在Swing中,有時可能會出現一些較為復雜的樣式表現需求,如果單純通過代碼實現,往往得不償失。這時,我們就可以利用html標簽,在組件中得到我們想要的效果。

       例子如下:

      package org.loon.test;

      import java.awt.BorderLayout;
      import java.awt.Color;
      import java.awt.Desktop;
      import java.awt.Dimension;
      import java.awt.EventQueue;
      import java.awt.Font;
      import java.awt.Graphics;
      import java.awt.Graphics2D;
      import java.awt.GridLayout;
      import java.awt.color.ColorSpace;
      import java.awt.event.ActionEvent;
      import java.awt.image.BufferedImage;
      import java.awt.image.ColorConvertOp;
      import java.io.IOException;
      import java.net.URI;
      import java.net.URISyntaxException;

      import javax.swing.AbstractAction;
      import javax.swing.BorderFactory;
      import javax.swing.JCheckBox;
      import javax.swing.JComponent;
      import javax.swing.JEditorPane;
      import javax.swing.JFrame;
      import javax.swing.JLabel;
      import javax.swing.JPanel;
      import javax.swing.UIManager;
      import javax.swing.WindowConstants;
      import javax.swing.event.HyperlinkEvent;
      import javax.swing.event.HyperlinkListener;

      /**
       * <p>
       * Title: LoonFramework
       * </p>
       * <p>
       * Description:
       * </p>
       * <p>
       * Copyright: Copyright (c) 2007
       * </p>
       * <p>
       * Company: LoonFramework
       * </p>
       * 
       * 
      @author chenpeng
       * @email:ceponline@yahoo.com.cn
       * 
      @version 0.1
       
      */

      public class HtmlLable extends JPanel {
          
      // 內置了本地系統桌面操作支持
          private Desktop desktop;

          
      private static final long serialVersionUID = 1L;

          
      // html內容
          private static final String HTML_TEXT = "<html><font color='red'><a >支持SOFF,插件無罪</a></font>";

          
      public HtmlLable() {
              
      super(new BorderLayout());
              
      final JLabel label0 = new JLabel("普通的JLabel");
              
      final JLabel label1 = new JLabel(HTML_TEXT);
              
      final JLabel label2 = new JLabel(HTML_TEXT) {

                  
      private static final long serialVersionUID = 1L;

                  
      // 設定Enabled樣式
                  public void setEnabled(boolean b) {
                      
      super.setEnabled(b);
                      setForeground(b 
      ? (Color) UIManager.get("Label.foreground")
                              : (Color) UIManager.get(
      "Label.disabledForeground"));
                  }

              }
      ;
              
      final JLabel label3 = new JLabel(HTML_TEXT) {
                  
      private static final long serialVersionUID = 1L;

                  
      // 陰影
                  private BufferedImage shadow;

                  
      // 設定Enabled樣式
                  public void setEnabled(boolean b) {
                      setForeground(b 
      ? (Color) UIManager.get("Label.foreground")
                              : (Color) UIManager.get(
      "Label.disabledForeground"));
                      
      if (!b) {
                          BufferedImage source 
      = new BufferedImage(getWidth(),
                                  getHeight(), BufferedImage.TYPE_INT_ARGB);
                          Graphics2D g2 
      = source.createGraphics();
                          g2.setPaint(
      new Color(0000));
                          g2.fillRect(
      00, getWidth(), getHeight());
                          paint(g2);
                          g2.dispose();
                          ColorConvertOp colorConvert 
      = new ColorConvertOp(ColorSpace
                                  .getInstance(ColorSpace.CS_GRAY), 
      null);
                          shadow 
      = colorConvert.filter(source, null);
                      }

                      
      super.setEnabled(b);
                  }


                  
      public void paintComponent(Graphics g) {
                      
      if (isEnabled()) {
                          
      super.paintComponent(g);
                      }
       else {
                          
      if (shadow != null)
                              g.drawImage(shadow, 
      00this);
                      }

                  }

              }
      ;

              
      /**
               * 設定為html
               
      */

              
      final JEditorPane editor1 = new MyHtmlEdit("text/html", HTML_TEXT);
              editor1.setOpaque(
      false);
              editor1.setEditable(
      false);

              
      final JEditorPane editor2 = new MyHtmlEdit("text/html", HTML_TEXT);
              editor2.setOpaque(
      false);
              editor2.setEditable(
      false);

              editor2.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES,
                      Boolean.TRUE);
              editor2.setFont((Font) UIManager.get(
      "Label.font"));

              JPanel box 
      = new JPanel(new GridLayout(23));
              box.add(makePanel(
      "JLabel", label0));
              box.add(makePanel(
      "JLabel+Html", label1));
              box.add(makePanel(
      "JLabel+Html+", label2));
              box.add(makePanel(
      "JLabel+Html++", label3));
              box.add(makePanel(
      "JEditorPane", editor1));
              box.add(makePanel(
      "JEditorPane+", editor2));

              JCheckBox check 
      = new JCheckBox("setEnabled"true);
              check.setAction(
      new AbstractAction("setEnabled"{
                  
      private static final long serialVersionUID = 1L;

                  
      public void actionPerformed(ActionEvent e) {
                      
      boolean flag = ((JCheckBox) e.getSource()).isSelected();
                      setVisible(
      false);
                      label0.setEnabled(flag);
                      label1.setEnabled(flag);
                      label2.setEnabled(flag);
                      label3.setEnabled(flag);
                      editor1.setEnabled(flag);
                      editor2.setEnabled(flag);
                      setVisible(
      true);
                  }

              }
      );

              add(check, BorderLayout.NORTH);
              add(box, BorderLayout.CENTER);
              desktop 
      = Desktop.getDesktop();
              
          }


          
      /**
           * 自定義一個JEditorPane,用以處理html事件
           * 
           * 
      @author chenpeng
           * 
           
      */

          
      class MyHtmlEdit extends JEditorPane implements HyperlinkListener {
              
      /**
               * 
               
      */

              
      private static final long serialVersionUID = 1L;

              
      public MyHtmlEdit(String type, String text) {
                  
      super(type, text);
                  addHyperlinkListener(
      this);
                  
              }


              
      public void hyperlinkUpdate(HyperlinkEvent e) {

                  
      if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
                      
      try {
                          
      // 在本地瀏覽器中打開uri(jdk1.6后由于強化了awt,就不用再自己寫本地瀏覽器調用了)
                          desktop.browse(e.getURL().toURI());
                          
                      }
       catch (IOException ex) {
                          ex.printStackTrace();
                      }
       catch (URISyntaxException ex) {
                          ex.printStackTrace();
                      }


                  }


              }

          }


          
      /**
           * 創建面板
           * 
           * 
      @param title
           * 
      @param label
           * 
      @return
           
      */

          
      private JPanel makePanel(String title, JComponent label) {
              JPanel p 
      = new JPanel(new GridLayout(11));
              p.setBorder(BorderFactory.createTitledBorder(title));
              p.add(label);
              
      return p;
          }


          
      public static void main(String[] args) {
              EventQueue.invokeLater(
      new Runnable() {
                  
      public void run() {
                      createGUI();
                  }

              }
      );
          }


          
      public static void createGUI() {

              JFrame frame 
      = new JFrame("在Swing中使用Html標簽");
              frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
              frame.setSize(
      new Dimension(450200));

              frame.getContentPane().add(
      new HtmlLable());

              frame.setResizable(
      false);
              frame.setLocationRelativeTo(
      null);
              
      //jdk1.6新項,置頂
              frame.setAlwaysOnTop(true);
              frame.setVisible(
      true);
          }


      }


      效果圖:

       

      這時的Swing,既可以實現Swing原有組件功能,也可以接受Html操作,可說是JavaGUI技術中為數不多的亮點之一。
      posted on 2007-12-25 10:32  cping  閱讀(1224)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲 校园 欧美 国产 另类| 国产亚洲人成网站在线观看| 亚洲色婷婷一区二区三区| 一区二区福利在线视频| 中山市| 日韩精品一区二区高清视频| 无码欧亚熟妇人妻AV在线外遇| 久久精品娱乐亚洲领先| 久久夜色撩人国产综合av| 果冻传媒18禁免费视频| 丰满熟妇人妻中文字幕| 美女黄网站18禁免费看| 国产亚洲欧美精品久久久| 精品一区二区中文字幕| 亚洲色成人一区二区三区人人澡人人妻人人爽人人蜜桃麻豆 | 国产精品成人免费视频网站京东| 国产AV影片麻豆精品传媒| 亚洲美女av一区二区| 成人福利一区二区视频在线| 国产短视频一区二区三区| 亚洲国产一区二区精品专| 中文无码av一区二区三区| 黑人强伦姧人妻久久| 2020国产欧洲精品网站| 中文字幕日韩人妻一区| 日韩精品一区二区蜜臀av| 荡乳尤物h| 亚洲AV永久无码嘿嘿嘿嘿| 一级片一区二区中文字幕| 欧美人伦禁忌dvd放荡欲情| 国产成人高清精品免费软件| 国产av无码专区亚洲av软件| 亚洲2022国产成人精品无码区| 中国女人内谢69xxxx| bt天堂新版中文在线| 亚洲人成网线在线播放VA| 国产午夜福利大片免费看| 亚洲va中文字幕无码久久| 曰韩无码二三区中文字幕| 人妻少妇精品性色av蜜桃| 国产精品无遮挡猛进猛出|