Swing 动态错误提示框

最近写了个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);		
	}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Swing是一种GUI工具包,用于开发图形化界面的应用程序。在Java Swing中,可以通过使用JOptionPane类来显示提示信息。 JOptionPane类提供了多种方法来显示不同类型的消息框,包括信息提示框、确认框、警告框和错误框等。以下是使用JOptionPane类显示提示信息的一些常见方法: 1. showMessageDialog方法:通过该方法可以显示一个带有消息文本的提示框,用户只需要点击确定按钮即可关闭。例如: JOptionPane.showMessageDialog(null, "欢迎使用Java Swing"); 2. showInputDialog方法:通过该方法可以显示一个带有输入框的提示框,用户可以在输入框中输入内容并点击确定按钮后关闭。例如: String name = JOptionPane.showInputDialog(null, "请输入您的姓名"); 3. showConfirmDialog方法:通过该方法可以显示一个带有确认按钮的提示框,用户可以选择确认或取消。例如: int option = JOptionPane.showConfirmDialog(null, "确定要删除该文件吗?"); 4. showOptionDialog方法:通过该方法可以显示一个带有自定义按钮的提示框,用户可以选择其中一个按钮。例如: String[] options = {"是", "否"}; int choice = JOptionPane.showOptionDialog(null, "您确定要退出吗?", "退出确认", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]); 通过以上方法,可以灵活地在Java Swing中显示不同类型的提示信息,并与用户进行交互。这些提示信息可以帮助用户更好地理解程序的运行情况,提供友好的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值