最近写了个swing 动态提示错误的提示框,本来想放在项目中的,被否掉了,拿出来共享一下,共同提高:
package errborder;
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.Timer;
import javax.swing.border.AbstractBorder;
public class BlinkErrorBorder extends AbstractBorder implements ActionListener{
private int thickness = 5;
private float alpha = thickness;
private Color color = Color.RED;
private Timer timer ;
private AlphaComposite composite;
private final float[] blinkArray = new float[]{1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
-1.0f,-1.0f,-1.0f,-1.0f,-1.0f,-1.0f,-1.0f};
public BlinkErrorBorder(Color color, int thickness){
this.color = color;
this.thickness = thickness;
this.alpha = thickness;
composite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f);
timer = new Timer(120, this);
}
public void startBlink(){
timer.start();
}
public void stopBlink(){
timer.stop();
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame = new JFrame();
BlinkErrorBorder err = new BlinkErrorBorder(Color.RED,3);
JTextField text = new JTextField();
text.setBorder(err);
err.startBlink();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(text);
frame.setSize(400,400);
frame.setVisible(true);
}
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setColor(color);
for(int i = 0; i < thickness; i++) {
composite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, (thickness-i)/alpha);
g2d.setComposite(composite);
g2d.drawRoundRect(x+i, y+i, width-i-i-1, height-i-i-1, thickness, thickness);
}
c.repaint();
}
public Insets getBorderInsets(Component c) {
return new Insets(thickness, thickness, thickness, thickness);
}
int tempI = 0;
@Override
public void actionPerformed(ActionEvent e) {
alpha = alpha+blinkArray[tempI];
tempI++;
tempI = tempI%(blinkArray.length);
}
}
分享到:
相关推荐
自己打包写的java swing计算器,我直接生成了runnable jar,可以惊醒加减乘除混合运算,同时支持错误提示。
点击登录按钮后,会调用登录认证方法进行验证,如果登录成功则显示一个提示消息,否则显示一个错误消息。通讯录界面包含一个通讯录列表和一个搜索框,可以通过搜索框来搜索联系人。联系人信息存储在一个列表中,并...
16.4.9 防止错误的使用wait、notify、notifyAll方法 371 16.5 获取当前正在运行的线程 372 16.6 volatile关键字的含义与使用 372 16.7 小结 373 第17章 高级线程开发 374 17.1 线程池的使用 374 17.1.1...
JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...
JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...
JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...
JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...
JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...
JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...
JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...
JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...
JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...
JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...
JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...
JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...
JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...
9.8.1 消息提示框(MessageBox) 171 9.8.2 文件目录对话框(DirectoryDialog) 172 9.8.3 文件对话框(FileDialog) 173 9.8.4 颜色对话框(ColorDialog) 175 9.8.5 字体对话框(FontDialog) 176 9.8.6...
动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。 静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面...