java 文本框监听
在一个文本框里输入身份证号满18位时,另外两个框显示姓名与性别;不满足18位时弹出信息框提示,这要怎么做...
在一个文本框里输入身份证号 满18位时,另外两个框显示姓名与性别;
不满足18位时弹出信息框提示,
这要怎么做 展开
不满足18位时弹出信息框提示,
这要怎么做 展开
展开全部
//简单的帮你写了基本功能 如下:
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class TestJT extends JPanel{
public TestJT() {
setLayout(null);
JLabel label=new JLabel("请输入省份证:");
label.setOpaque(true);
label.setBounds(50, 30,100, 25);
add(label);
final JTextField tf1=new JTextField();
tf1.setOpaque(true);
tf1.setBounds(160,30,80,30);
add(tf1);
tf1.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent e) {
if( tf1.getText().trim().length()!=18){
JOptionPane.showMessageDialog(null, "输入的身份证号码不是18位");
return;
}
}
@Override
public void focusGained(FocusEvent e) {
// TODO Auto-generated method stub
}
});
JLabel labe2=new JLabel("请输入名字:");
labe2.setOpaque(true);
labe2.setBounds(50, 70,100, 25);
add(labe2);
final JTextField tf2=new JTextField();
tf2.setOpaque(true);
tf2.setBounds(160,70,80,30);
add(tf2);
JLabel labe3=new JLabel("请输入性别:");
labe3.setOpaque(true);
labe3.setBounds(50, 110,100, 25);
add(labe3);
final JTextField tf3=new JTextField();
tf3.setOpaque(true);
tf3.setBounds(160,110,80,30);
add(tf3);
}
public static void main(String[] args) {
JFrame frame=new JFrame();
JPanel p= new TestJT();
frame.add(p);
frame.setVisible(true);
frame.setSize(500, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
展开全部
很简单 只要在文本框上面加一个 actionlistener,然后每次输入字符的时候 判断一下 字符串长度
。如果满足18位,就调用 另外两个框的 setText 方法,吧姓名和性别set进去
。如果满足18位,就调用 另外两个框的 setText 方法,吧姓名和性别set进去
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
额 ? 你就是要满足18位么?身份证可是很难校验的肋
正则表达式哦
Pattern match 类
你的文本框要:1 失去焦点事件触发 2 内容改变事件触发
就够了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询