欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

在Swing中使用Html標簽

系統 1715 0
在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 Desktopdesktop;

private static final long serialVersionUID = 1L ;

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

public HtmlLable() ... {
super ( new BorderLayout());
final JLabellabel0 = new JLabel( " 普通的JLabel " );
final JLabellabel1 = new JLabel(HTML_TEXT);
final JLabellabel2 = 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 JLabellabel3 = new JLabel(HTML_TEXT) ... {
private static final long serialVersionUID = 1L ;

// 陰影
private BufferedImageshadow;

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

super .setEnabled(b);
}


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

}

}
;

/***/ /**
*設定為html
*/

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

final JEditorPaneeditor2 = 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 " ));

JPanelbox
= new JPanel( new GridLayout( 2 , 3 ));
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));

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

public void actionPerformed(ActionEvente) ... {
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(Stringtype,Stringtext) ... {
super (type,text);
addHyperlinkListener(
this );

}


public void hyperlinkUpdate(HyperlinkEvente) ... {

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

}
catch (IOExceptionex) ... {
ex.printStackTrace();
}
catch (URISyntaxExceptionex) ... {
ex.printStackTrace();
}


}


}

}


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

private JPanelmakePanel(Stringtitle,JComponentlabel) ... {
JPanelp
= new JPanel( new GridLayout( 1 , 1 ));
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() ... {

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

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

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


}


效果圖:
在Swing中使用Html標簽


這時的Swing,既可以實現Swing原有組件功能,也可以接受Html操作,可說是JavaGUI技術中為數不多的亮點之一。

在Swing中使用Html標簽


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产主播福利精品一区二区 | 久草视频免费看 | 欧美日色 | 国产福利不卡视频在免费播放 | 亚洲成人一区二区 | 欧美一区二区免费 | 国产精品久久久久久久午夜 | 国产福利91精品一区二区三区 | 欧美中文字幕一区二区三区亚洲 | 成人av激情| 三A级做爰片免费观看国产电影 | 妞干网免费在线观看 | 午夜精品视频在线观看 | 91高清在线 | 国产91一区二这在线播放 | 780pp亚洲情艺中心 | 亚洲一区二区在线 | 中文字幕免费在线观看动作大片 | 日本在线观看中文字幕 | 老妇毛片 | 国产精品一区二区三区久久久 | 日本黄色激情视频 | 二级黄绝大片中国免费视频 | 国产乱码精品1区2区3区 | 99九九精品 | 另类五月天 | 天堂中文资源在线8 | 两女互慰磨豆腐视频在线观看 | 久久久影院 | 伊人导航| 国产一区二区三区在线 | 精品视频导航 | 久久亚洲国产精品 | 古装三级在线观看 | 国产sm主人调教女m视频 | 99久久精品费精品国产一区二区 | 欧美成人在线免费观看 | 欧美成人免费高清二区三区 | 99精品国产一区二区青青牛奶 | 92午夜剧场 | 亚洲在线视频播放 |