Swing——JLabel美化
来源:互联网 发布:淘宝购物怎么走返利 编辑:程序博客网 时间:2024/05/17 01:55
首先,先说明一下组件是怎么绘制的,一般基本组件都是通过paint()方法进行绘制的,而paint()方法则是通过paintComponent()来实现的,而paintComponent()方法最终会转到该方法的BasicUI,也就是说,通过实现一个组件的BasicUI中的所有子方法,便可以达到绘制一个组件的目的。其次,并不一定,美化一个组件就一定要实现它的BasicUI,大部分时候,通过paint()和paintComponent()方法就可以了。所以,通过个性化paint(),paintComponent(),或者BasicUI就可以达到美化的目的啦。是不是很简单?下面就来看看如何美化JLabel吧。
package test;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JLabel;
@SuppressWarnings("serial")
public class BeautifyJLabel01 extends JLabel {
/**
* Create the panel.
*/
public BeautifyJLabel01() {
super();
}
protected void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2d=(Graphics2D)g;
BasicStroke s=new BasicStroke(5,BasicStroke.CAP_BUTT,BasicStroke.JOIN_ROUND);
g2d.setStroke(s);
g2d.setColor(Color.BLUE);
g2d.drawLine(this.getX()+5, this.getY()+5, this.getX()+5, this.getHeight()-5);
g2d.drawLine(this.getX()+5, this.getY()+5, this.getWidth()-5, this.getY()+5);
g2d.drawLine(this.getWidth()-5, this.getY()+5, this.getWidth()-5, this.getHeight()-5);
g2d.drawLine(this.getX()+5, this.getHeight()-5, this.getWidth()-5, this.getHeight()-5);
}
@SuppressWarnings("serial")
public class BeautifyJLabel01 extends JLabel {
/**
* Create the panel.
*/
public BeautifyJLabel01() {
super();
}
protected void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2d=(Graphics2D)g;
BasicStroke s=new BasicStroke(5,BasicStroke.CAP_BUTT,BasicStroke.JOIN_ROUND);
g2d.setStroke(s);
g2d.setColor(Color.BLUE);
g2d.drawLine(this.getX()+5, this.getY()+5, this.getX()+5, this.getHeight()-5);
g2d.drawLine(this.getX()+5, this.getY()+5, this.getWidth()-5, this.getY()+5);
g2d.drawLine(this.getWidth()-5, this.getY()+5, this.getWidth()-5, this.getHeight()-5);
g2d.drawLine(this.getX()+5, this.getHeight()-5, this.getWidth()-5, this.getHeight()-5);
}
}
上面的代码为JLabel增加了一个蓝色边框,如下图所示。
package test;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JComponent;
import javax.swing.plaf.basic.BasicLabelUI;
import javax.swing.plaf.basic.BasicLabelUI;
public class JLabelUI extends BasicLabelUI{
@Override
public void paint(Graphics g, JComponent c){
super.paint(g,c);
Graphics2D g2d=(Graphics2D)g;
BasicStroke s=new BasicStroke(5,BasicStroke.CAP_BUTT,BasicStroke.JOIN_ROUND);
g2d.setStroke(s);
g2d.setColor(Color.BLUE);
g2d.drawLine(c.getX()+5, c.getY()+5, c.getX()+5, c.getHeight()-5);
g2d.drawLine(c.getX()+5, c.getY()+5, c.getWidth()-5, c.getY()+5);
g2d.drawLine(c.getWidth()-5, c.getY()+5, c.getWidth()-5, c.getHeight()-5);
g2d.drawLine(c.getX()+5, c.getHeight()-5, c.getWidth()-5, c.getHeight()-5);
}
}
public void paint(Graphics g, JComponent c){
super.paint(g,c);
Graphics2D g2d=(Graphics2D)g;
BasicStroke s=new BasicStroke(5,BasicStroke.CAP_BUTT,BasicStroke.JOIN_ROUND);
g2d.setStroke(s);
g2d.setColor(Color.BLUE);
g2d.drawLine(c.getX()+5, c.getY()+5, c.getX()+5, c.getHeight()-5);
g2d.drawLine(c.getX()+5, c.getY()+5, c.getWidth()-5, c.getY()+5);
g2d.drawLine(c.getWidth()-5, c.getY()+5, c.getWidth()-5, c.getHeight()-5);
g2d.drawLine(c.getX()+5, c.getHeight()-5, c.getWidth()-5, c.getHeight()-5);
}
}
上面代码和最上面的代码的图片效果是一样的。
阅读全文
1 0
- Swing——JLabel美化
- Swing —— JLabel预览示例
- Swing——JButton美化
- Swing——JSlider美化
- Swing——JTextField美化
- Swing笔记(一)——JLabel和JButton组件
- swing 组件——在JLabel中添加图片的两种方式
- Swing开发之JLabel篇
- Swing开发之JLabel篇
- java swing 创建 jlabel 标签
- JFC/Swing活学活用JLabel文字魔法
- JFC/Swing活学活用JLabel文字魔法
- JFC/Swing活学活用之JLabel文字魔法
- Java Swing 刷新JLabel的背景图片
- swing JLabel详解以及使用示例
- swing 组件基础(2) 之 Jlabel
- 【swing】JLabel详解以及使用示例
- swing JLabel详解以及使用示例
- CRB and His Birthday(HDU-5410)
- 数字调序
- 刘轩-心理课堂-十点课堂-微表情阅读一个人
- 5月6日动态规划测试解题报告
- c/c++中const的用法
- Swing——JLabel美化
- 学习springmvc的第四天(准备springmvc环境)
- EOJ------丽娃河的狼人传说
- SQLSTATE[42S22]: Column not found: 1054 Unknown column 'staff_info.depart_id' in 'where clause'
- 刘轩-心理学-十点课-如何克服拖延症
- 字符串替换
- mysql 与 Oracle 分页方法的对比总结
- 刘轩-别让偏见讯息左右你
- 二分查找各种情况大总结