Java GUI编程4---标签组件JLabel
Java GUI编程4---标签组件JLabel
1. 认识JLabel
JLabel组件表示的是一个标签,本身是用于显示信息的,一般情况下是不能直接更改器显示内容的。创建完的Label对象可以通过Container类中的add()方法,加入到容器中,JLabel类的常用方法和常量如下表所示。
| 序号 | 常量 | 描述 |
|---|---|---|
| 1 | public static final int LEFT | 标签文本左对齐 |
| 2 | public static final int CENTER | 标签文本居中对齐 |
| 3 | public static final int RIGHT | 标签文本右对齐 |
| 序号 | 方法 | 描述 |
|---|---|---|
| 1 | public JLabel() throws HeadlessException | 创建一个JLabel对象 |
| 2 | public JLabel(String text) throws HeadlessException | 创建一个标签并制定文本内容,默认左对齐 |
| 3 | public Label(String text,int alignment) throws HeadlessException | 创建一个标签并制定文本内容以及对齐方式,可以使用JLable.LEFT,JLabel.RIGHT,JLabel.CENTER这三个值 |
| 4 | public JLabel(String text,Icon icon,int horizontalAlignment) | 创建具有指定文本,图像,水平对齐方式的JLabel对象 |
| 5 | public JLabel(Icon image,int horizontalAlignment) | 创建具有制定图形和水平对齐方式的JLabel实例 |
| 6 | public void setText(String text) | 设置标签的文本 |
| 7 | public String getText() | 获取标签文本 |
| 8 | public void setAlignment(int alignment) | 设置标签的对齐方式 |
| 9 | public void setIcon(Icon icon) | 设置指定的图像 |
实例:使用一个标签
import java.awt.Color ;
import java.awt.Dimension;
import java.awt.Point ;
import javax.swing.JLabel ;
import javax.swing.JFrame ;
public class JLabelDemo01{
public static void main(String args[]){
JFrame frame = new JFrame("JLable Test") ;
JLabel lab = new JLabel("我是一个标签",JLabel.CENTER) ; // 实例化标签对象
frame.add(lab) ; // 将组件件入到面板之中
frame.setBackground(Color.WHITE) ;//设置窗体的背景颜色
Dimension dim = new Dimension() ;
dim.setSize(400,200) ; //窗体的大小
frame.setSize(dim) ; //设置窗体大小
Point point = new Point(500,100) ; // 设置坐标
frame.setLocation(point) ; //设置窗体坐标
frame.setVisible(true) ; //设置窗体可见
}
}
运行结果:
如果要在上面的代码中体现出容器的概念,可以直接通过JFrame中的getContentPane()取得窗口的Container对象,并在此对象中加入组件。
修改后的代码如下:
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Point ;
import javax.swing.JLabel ;
import javax.swing.JFrame ;
public class JLabelDemo001{
public static void main(String args[]){
JFrame frame = new JFrame("JLable Test") ;
Container container=frame.getContentPane(); //取得当前窗体的容器
JLabel lab = new JLabel("我是一个标签",JLabel.CENTER) ; // 实例化标签对象
container.add(lab) ; // 将组件件入到窗体的容器中
Dimension dim = new Dimension() ;
dim.setSize(400,200) ; //窗体的大小
frame.setSize(dim) ; //设置窗体大小
Point point = new Point(500,100) ; // 设置坐标
frame.setLocation(point) ; //设置窗体坐标
frame.setVisible(true) ; //设置窗体可见
}
}
运行结果和上面的运行结果一样
2.更改JLable的文字样式
以上的标签内容只是使用了默认的字体和颜色显示,如果现在要更改使用的字体,则可以直接使用Component类中定义的一下方法:
public void setFont(Font f)
- 1
在设置是使用java.awt.Font类来表示字体,Front类常用的操作方法及常量如下表所示:
| 序号 | 方法或常量 | 类型 | 描述 |
|---|---|---|---|
| 1 | public static final int BOLD | 常量 | 文字显示为粗体 |
| 2 | public static final int ITALIC | 常量 | 文字显示风格为斜体 |
| 3 | public static final int PLAIN | 常量 | 文字显示风格为普通样式 |
| 4 | public Font(String name,int style,int size) | 构造方法 | 实例化对象,指定显示风格和大小 |
| 5 | public String getFontName() | 普通成员方法 | 得到字体的名称 |
实例:设置标签的显示字体,大小,背景颜色
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Point;
import javax.swing.JLabel;
import javax.swing.JFrame;
public class JLabelDemo02
{
public static void main(String args[])
{
JFrame frame = new JFrame("更改JLable的文字样式");
// 实例化标签对象,文本左对齐
JLabel lab = new JLabel("标签中的文字", JLabel.LEFT);
//创建Font对象 使用Serief字体,显示风格为斜体Font.ITALIC,加粗Font.BOLD,字号大小为28
Font fnt = new Font("Serief", Font.ITALIC + Font.BOLD, 30);
lab.setFont(fnt); //设置标签中的字体
lab.setForeground(Color.BLUE); //设置标签中的文字颜色
frame.add(lab); // 将组件件入到面板之中
frame.getContentPane().setBackground(Color.PINK);//设置窗体背景颜色
Dimension dim = new Dimension(); //初始化窗体大小
dim.setSize(400, 200);
frame.setSize(dim); //设置窗体大小
Point point = new Point(500, 100); //初始化坐标点
frame.setLocation(point); //设置窗体位置
frame.setVisible(true);
}
}
运行结果:
获取本机中的全部字体
如果想取得本机的全部字体该怎么办呢?—-可以使用GraphicsEnvironment类完成
java.awt.GraphicsEnvironment可以返回本机的全部绘图设备和全部字体的集合,该类是抽象类,要想实例化对象,直接使用类中的getLocalGraphicsEnvironment()方法即可,之后通过getAvailableFontFamilyNames()方法就可取得全部的可用字体,代码如下。
实例:取得本机中的全部可用字体
import java.awt.GraphicsEnvironment;
public class GetAllFonts
{
public static void main(String args[])
{
GraphicsEnvironment eq = GraphicsEnvironment.getLocalGraphicsEnvironment();
String fontNames[] = eq.getAvailableFontFamilyNames();
for (int x = 0; x < fontNames.length; x++)
{
System.out.println(fontNames[x]);
}
}
}
运行结果,这里太多了,只输出部分。其他的省略掉:
Agency FB
Algerian
Arial
//太多了省略...
Consolas
//太多了省略...
Times New Roman
//太多了省略...
仿宋
//太多了省略...
隶书
黑体
在JLabel中设置图片
将一个图片设置到JLabel中也是可以的,直接使用Icon接口以及ImageIcon子类即可,在ImageIcon中可以使用如下表的构造方法,将图片的数据已byte数组的形式设置到JLabel上去。
| 序号 | 方法 | 类型 | 描述 |
|---|---|---|---|
| 1 | public ImageIcon(byte[] imageData) | 构造方法 | 将保存图片信息的byte数组设置到ImageIcon中 |
| 2 | public ImageIcon(String filename) | 构造方法 | 通过文件名称创建ImageIcon对象 |
| 3 | public ImageIcon(String finame,String description) | 构造方法 | 设置图片路径以及图片的简单描述 |
下面先来看第一个构造方法的使用,如果要从一个图像文件中取得字节数组,那就要使用InputStream类来完成操作。
实例代码: 在标签上设置图像
package java1.awt.jlable;
import java.awt.Dimension;
import java.awt.Color;
import java.awt.Font;
import java.awt.Point;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.swing.JLabel;
import javax.swing.JFrame;
import javax.swing.Icon;
import javax.swing.ImageIcon;
public class JLabelDemo03
{
public static void main(String args[])
{
JFrame frame = new JFrame("在JLabel标签上设置图片");
//指定图片的路径
String picPath = "C:\\Users\\Administrator\\Desktop\\蓝精灵.jpg";
File file = new File(picPath); // 实例化File类的对象
InputStream input = null;
byte b[] = new byte[(int) file.length()]; //根据图片大小设置字节数组的长度
try
{
input = new FileInputStream(file); //实例化文件字节输入流
input.read(b); //从图片中读取字节到字节数组中
input.close(); //关闭文件流
} catch (Exception e)
{
e.printStackTrace();
}
Icon icon = new ImageIcon(b); //使用字节数组,实例化ImageIcon对象
// 实例化标签对象:带图片,居中对齐
JLabel lab = new JLabel("带图片的标签", icon, JLabel.CENTER);
//设置字体,隶书,斜体,加粗,字号为28
Font fnt = new Font("宋体", Font.ITALIC + Font.BOLD, 28);
//设置标签中的字体
lab.setFont(fnt);
//这个标签中自字体的颜色
lab.setForeground(Color.BLUE);
//设置标签背景颜色
lab.setOpaque(true);
lab.setBackground(Color.PINK);
//把标签添加到面板中
frame.add(lab); // 将组件件入到面板之中
// 设置窗体的背景颜色
frame.getContentPane().setBackground(Color.WHITE);
//设置窗口宽度和高度
Dimension dim = new Dimension();
dim.setSize(800,600 );
frame.setSize(dim);
//设置窗体的坐标
Point point = new Point(100, 100); // 设置坐标
frame.setLocation(point);
frame.setVisible(true);
}
}
运行效果:
为jlabel设置背景颜色
jlabel默认是透明的,所以默认情况下对其设置背景色是不管用的。
但是这样就可以更改其背景颜色:
jlabel.setOpaque(true);
jlabel.setbackground(color.black);
- 1
- 2
出处:https://blog.csdn.net/mr_pang/article/details/47449495
如果使用一个IO流来进行图片读取带设置JLabel显示图形太麻烦,则可以直接将一个图形的路径传递到ImageIcon的实例化中,并使用JLabel类中对应的构造方法即可。
实例:使用图像路径实例化ImageIcon
图片:
位置:C:\Users\Administrator\Desktop\蓝精灵_Jc.jpg;
import java.awt.Dimension;
import java.awt.Color;
import java.awt.Font;
import java.awt.Point;
import javax.swing.JLabel;
import javax.swing.JFrame;
import javax.swing.Icon;
import javax.swing.ImageIcon;
public class JLabelDemo04
{
public static void main(String args[])
{
JFrame frame = new JFrame("通过图像路径实例化JLabel");
// 指定图片路径
String picPath = "C:\\Users\\Administrator\\Desktop\\蓝精灵_Jc.jpg";
// 实例化ImageIcon
Icon icon = new ImageIcon(picPath);
// 实例化标签对象
JLabel lab = new JLabel("通过图片路径来设置JLabel", icon, JLabel.CENTER);
// 初始化字体
Font fnt = new Font("Serief", Font.ITALIC + Font.BOLD, 16);
// 标签设置字体
lab.setFont(fnt);
// 这种标签字体颜色
lab.setForeground(Color.RED);
// 设置标签背景颜色
lab.setOpaque(true);
lab.setBackground(Color.PINK);
//把标签放到面板中
frame.add(lab);
Dimension dim = new Dimension();
dim.setSize(500, 300);
frame.setSize(dim);
Point point = new Point(100, 100); // 设置坐标
frame.setLocation(point);
frame.setVisible(true);
}
}
运行结果:
上面两种设置图片的方法都能试想效果,如果图像是从一个不确定的输入流(如数据库中读)中而来的,则使用使用第一中方法。如果图片是从文件中获取的,使用第二中方式,少了IO操作,会更加方便。
Java GUI编程4---标签组件JLabel的更多相关文章
- Java GUI编程中AWT/swing/SWT的优缺点
http://www.cnblogs.com/dugang/archive/2010/10/22/1858478.html AWT AWT是Abstract Window Toolkit(抽象窗口工具 ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- java Gui编程 事件监听机制
1. GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在DOS命令行中通过javac java命令启动程序. 软件的交互的方式: 1. 命令交互方式 图书管理系统 ...
- Java Web编程的主要组件技术——MVC设计模式
参考书籍:<J2EE开源编程精要15讲> MVC(Model View Controller),Model(模型)表示业务逻辑层,View(视图)代表表述层,Controller(控制)表 ...
- java GUI编程二
java基础学习总结--GUI编程(二) 一.事件监听 测试代码一: 1 package cn.javastudy.summary; 2 3 import java.awt.*; 4 import j ...
- Java GUI编程
----基础 // 创建一个窗体对象 JFrame frame = new JFrame(); // 设置窗口大小 frame.setSize(300, 20 ...
- Java Web编程的主要组件技术——Struts入门
参考书籍:<J2EE开源编程精要15讲> Struts是一个开源的Java Web框架,很好地实现了MVC设计模式.通过一个配置文件,把各个层面的应用组件联系起来,使组件在程序层面联系较少 ...
- Java GUI编程-(项目代码_扫雷_弹钢琴)
--扫雷 package com;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionLis ...
- Java Web编程的主要组件技术——Struts的高级功能
参考书籍:<J2EE开源编程精要15讲> Struts对国际化的支持 "国际化"(I18N)指一个应用程序在运行时能根据客户端请求所来的国家/地区.语言的不同显示不同的 ...
随机推荐
- tomcat 启动显示指定的服务未安装
解决方法: 命令行进入tomcat的bin目录 输入“service.bat install” 重启,OK
- 「C基础」C运算符的优先级
一.运算符的优先级表 C 语言的符号众多,由这些符号又组合成了各种各样的运算符.既然是运算符就一定有其特定的优先级,下表就是C 语言运算符的优先级表: 注:同一优先级的运算符,运算次序由结合方向所决定 ...
- Apache RocketMQ 正式开源分布式事务消息
近日,Apache RocketMQ 社区正式发布4.3版本.此次发布不仅包括提升性能,减少内存使用等原有特性增强,还修复了部分社区提出的若干问题,更重要的是该版本开源了社区最为关心的分布式事务消息, ...
- SPOJ1043 GSS1(线段树)
题意 给出$n$个数,每次询问区间$(l, r)$内最大字段和 Sol 在合并子树的时候,答案仅有四种情况 打四个标记维护即可 查询同理,用类似update的方式合并 注意查询的时候不能按照以前的方式 ...
- Python 正则表达式 search vs match
search()和match()函数都是正则表达式中的匹配函数,二者有何区别呢? 1.match()从string的开始位置进行正则匹配,即从0位置开始匹配,若匹配上则返回一个match对象,否则返回 ...
- 小技巧之padding-bottom实现等比例图片缩放
1.padding-bottom 如果用%来表示的话,计算是根据父元素的width的值进行计算的. 例:父元素.wrapper的width是100px,height设置为0, padding-bott ...
- yii2 基本的增删改查
一:添加方法 1.1 使用成员属性的方式 save $user_name = $_POST['user_name']; $password = $_POST['password']; //实例化 $u ...
- MVC中Spring.net 对基类控制器无效 过滤器控制器无效
比如现在我又一个BaseController作为基类控制器,用于过滤权限.登录判断等作用,其它控制由原本的继承Controller,改为继承BaseController.然后BaseControlle ...
- 不同storyboard间跳转
小项目中用到storyboard,可以按照模块来新建多个sb. 以下是代码实现跳转实现: UIStoryboard *anSb=[UIStoryboard storyboardWithName:@&q ...
- Struts之上传
上传的jsp写法: <tr> <td width="50%" align="left">软件上传: <input type=&qu ...