Java编程swing组件JLabel详解以及使用示例
JLabel对象可以显示文本、图像或同时显示二者。可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐。默认情况下,标签在其显示区内垂直居中对齐。默认情况下,只显示文本的标签是开始边对齐;而只显示图像的标签则水平居中对齐。还可以指定文本相对于图像的位置。默认情况下,文本位于图像的结尾边上,文本和图像都垂直对齐。
构造方法介绍:
JLabel()创建无图像并且其标题为空字符串的JLabel。
JLabel(Iconimage)创建具有指定图像的JLabel实例。
JLabel(Iconimage,inthorizontalAlignment)创建具有指定图像和水平对齐方式的JLabel实例。
JLabel(Stringtext)创建具有指定文本的JLabel实例。
JLabel(Stringtext,Iconicon,inthorizontalAlignment)创建具有指定文本、图像和水平对齐方式的JLabel实例。
JLabel(Stringtext,inthorizontalAlignment)创建具有指定文本和水平对齐方式的JLabel实例。
常用方法:
getHorizontalAlignment()返回标签内容沿X轴的对齐方式。
getHorizontalTextPosition()返回标签的文本相对其图像的水平位置。
getIcon()返回该标签显示的图形图像(字形、图标)。getText()返回该标签所显示的文本字符串。
setHorizontalAlignment(intalignment)设置标签内容沿X轴的对齐方式。
setHorizontalTextPosition(inttextPosition)设置标签的文本相对其图像的水平位置。
setIcon(Iconicon)定义此组件将要显示的图标。
setText(Stringtext)定义此组件将要显示的单行文本。setUI(LabelUIui)设置呈现此组件的L&F对象。
setVerticalAlignment(intalignment)设置标签内容沿Y轴的对齐方式。
setVerticalTextPosition(inttextPosition)设置标签的文本相对其图像的垂直位置。
在JLabel中增加图片和文本
importjava.awt.FlowLayout;
importjavax.swing.ImageIcon;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.SwingConstants;
publicclassMixingIconLabel{
publicstaticvoidmain(String[]args){
JFrame.setDefaultLookAndFeelDecorated(true);
JFrameframe=newJFrame();
frame.setTitle("JLabelTest");
frame.setLayout(newFlowLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ImageIconimageIcon=newImageIcon("yourFile.gif");
JLabellabel=newJLabel("Mixed",imageIcon,SwingConstants.RIGHT);
frame.add(label);
frame.pack();
frame.setVisible(true);
}
}
JLabel中增加HTML文本
importjavax.swing.JFrame;
importjavax.swing.JLabel;
publicclassHTMLLabel{
publicstaticvoidmain(String[]a){
JFrameframe=newJFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabellabel=newJLabel("bold
plain");
frame.add(label);
frame.setSize(300,200);
frame.setVisible(true);
}
}
重写JLabel
importjava.awt.Color;
importjava.awt.Dimension;
importjava.awt.Graphics;
importjava.awt.event.MouseAdapter;
importjava.awt.event.MouseEvent;
importjava.io.Serializable;
importjavax.swing.JLabel;
publicclassColorsextendsJLabelimplementsSerializable{
transientprivateColorcolor;
//notpersistent
privateBooleanrectangular;
//ispersistent
publicColors(){
addMouseListener(newMouseAdapter(){
publicvoidmousePressed(MouseEventme){
change();
}
}
);
rectangular=false;
setSize(200,100);
change();
}
publicBooleangetRectangular(){
returnrectangular;
}
publicvoidsetRectangular(Booleanflag){
this.rectangular=flag;
repaint();
}
publicvoidchange(){
color=randomColor();
repaint();
}
privateColorrandomColor(){
intr=(int)(255*Math.random());
intg=(int)(255*Math.random());
intb=(int)(255*Math.random());
returnnewColor(r,g,b);
}
publicvoidpaint(Graphicsg){
Dimensiond=getSize();
inth=d.height;
intw=d.width;
g.setColor(color);
if(rectangular){
g.fillRect(0,0,w-1,h-1);
}else{
g.fillOval(0,0,w-1,h-1);
}
}
}
将JLabel增加到JScrollPane中便于显示大图片
importjavax.swing.ImageIcon;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JScrollPane;
publicclassScrollPaneFrame{
publicstaticvoidmain(String[]args){
JFrameframe=newJFrame();
JLabelimage=newJLabel(newImageIcon("A.jpg"));
frame.getContentPane().add(newJScrollPane(image));
frame.setSize(300,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
JLabel中增加unicode编码
importjava.awt.GridLayout;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
publicclassUnicode{
publicstaticvoidmain(Stringargs[]){
UnicodeJFrameunicodeJFrame=newUnicodeJFrame();
unicodeJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
unicodeJFrame.setSize(350,250);
unicodeJFrame.setVisible(true);
}
}
classUnicodeJFrameextendsJFrame{
publicUnicodeJFrame(){
super("DemonstratingUnicode");
setLayout(newGridLayout(8,1));
JLabelenglishJLabel=newJLabel("/u0057/u0065/u006C/u0063"
+"/u006F/u006D/u0065/u0020/u0074/u006F/u0020Unicode/u0021");
englishJLabel.setToolTipText("ThisisEnglish");
add(englishJLabel);
JLabelchineseJLabel=newJLabel("/u6B22/u8FCE/u4F7F/u7528"+"/u0020/u0020Unicode/u0021");
chineseJLabel.setToolTipText("ThisisTraditionalChinese");
add(chineseJLabel);
JLabelcyrillicJLabel=newJLabel("/u0414/u043E/u0431/u0440"
+"/u043E/u0020/u043F/u043E/u0436/u0430/u043B/u043E/u0432"
+"/u0430/u0422/u044A/u0020/u0432/u0020Unicode/u0021");
cyrillicJLabel.setToolTipText("ThisisRussian");
add(cyrillicJLabel);
JLabelfrenchJLabel=newJLabel("/u0042/u0069/u0065/u006E/u0076"
+"/u0065/u006E/u0075/u0065/u0020/u0061/u0075/u0020Unicode/u0021");
frenchJLabel.setToolTipText("ThisisFrench");
add(frenchJLabel);
JLabelgermanJLabel=newJLabel("/u0057/u0069/u006C/u006B/u006F"
+"/u006D/u006D/u0065/u006E/u0020/u007A/u0075/u0020Unicode/u0021");
germanJLabel.setToolTipText("ThisisGerman");
add(germanJLabel);
JLabeljapaneseJLabel=newJLabel("Unicode/u3078/u3087/u3045"+"/u3053/u305D/u0021");
japaneseJLabel.setToolTipText("ThisisJapanese");
add(japaneseJLabel);
JLabelportugueseJLabel=newJLabel("/u0053/u00E9/u006A/u0061"
+"/u0020/u0042/u0065/u006D/u0076/u0069/u006E/u0064/u006F/u0020"+"Unicode/u0021");
portugueseJLabel.setToolTipText("ThisisPortuguese");
add(portugueseJLabel);
JLabelspanishJLabel=newJLabel("/u0042/u0069/u0065/u006E"
+"/u0076/u0065/u006E/u0069/u0064/u0061/u0020/u0061/u0020"+"Unicode/u0021");
spanishJLabel.setToolTipText("ThisisSpanish");
add(spanishJLabel);
}
}
总结
以上就是本文关于Java编程swing组件JLabel详解以及使用示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:
《Java编程实现swing圆形按钮实例代码》
《浅谈标签和JLabel类构造方法》
《Java图形化界面设计之容器(JFrame)详解》
如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!