import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
public class MyTextField extends JTextField implements KeyListener{
Tools to;
TexturePaint texture;
int maxlength;
public MyTextField(BufferedImage im,int maxlen){
super();
this.maxlength =maxlen;
to = new Tools();
this.setFont(to.f1);
this.setForeground(new Color(107,47,00));
Rectangle rect = new Rectangle(0,0,
im.getWidth(null),im.getHeight(null));
texture = new TexturePaint(im, rect);//用指定大小的图片来填充JTextField
setOpaque(false);//使其透明
this.setBorder(BorderFactory.createEmptyBorder());//去边框
this.addKeyListener(this);
}
public void paintComponent(Graphics g) {//填充
Graphics2D g2 = (Graphics2D)g;
g2.setPaint(texture);
g.fillRect(0,0,getWidth(),getHeight());
super.paintComponent(g);
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if(this.getDocument().getLength()==maxlength && (e.getKeyCode()!=KeyEvent.VK_DELETE && e.getKeyCode()!=KeyEvent.VK_BACK_SPACE)){//当长度达到最大时出删除键,其他均使文本框无法编辑
this.setEditable(false);
Toolkit toolkit = Toolkit.getDefaultToolkit();
toolkit.beep();
}else if(e.getKeyCode()==KeyEvent.VK_DELETE || e.getKeyCode()==KeyEvent.VK_BACK_SPACE){
this.setEditable(true);
}
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
java 重载JTextField 使其具有背景图片和限制输入长度大小
最新推荐文章于 2024-07-21 22:27:18 发布