小弟想用FocusAdapter为3个TextField做焦点监听器,主要是监听在这3个TextField组件里输入的内容是否合法,不合法的话,只要焦点一转移回谈出一个对话框,并且焦点会回到那个内容不合法的TextField上
解决方案 »
- 各位,如何实现小球沿指定路劲移动
- 请高手帮解决字符串#include BJ.H替换为#include “BJ.H”的问题
- 关于命令行参数不能接受 /? 的问题
- 用java做的一个画图程序,可是在最小化后再重新最大化,画得东西却不见了
- 高人看看这段代码,为什么圆还会有显示不全的情况
- jdk1.4后就可以不设classpath是什么意思?请告诉我
- java网络编程的一个练习题,为何程序不能运行出界面?
- 我是新手,请大家帮帮忙
- Java新手的问题 VJ++与SUN 的JAVA 有什么不同,SUN 的JAVA 编程环境在哪里找到?
- 请教各位关于线程的wait和notify的问题,谢谢先
- 新手提问,java中判断网络连接是否正常 急
- 一道java考试题
java.awt.GridBagConstraints gridBagConstraints; jLabel1 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
jTextField2 = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jComboBox1 = new javax.swing.JComboBox();
jLabel4 = new javax.swing.JLabel();
jTextField4 = new javax.swing.JTextField();
buttonPanel = new javax.swing.JPanel();
okButton = new javax.swing.JButton();
cancelButton = new javax.swing.JButton(); setLayout(new java.awt.GridBagLayout()); jLabel1.setText("\u516c\u53f8\u540d\uff1a");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
add(jLabel1, gridBagConstraints); jTextField1.setColumns(15);
jTextField1.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
TextFieldFocusLost(evt);
}
}); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
add(jTextField1, gridBagConstraints); jLabel2.setText("\u804c\u4f4d\uff1a");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
add(jLabel2, gridBagConstraints); jTextField2.setColumns(15);
jTextField2.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
TextFieldFocusLost(evt);
}
}); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
add(jTextField2, gridBagConstraints); jLabel3.setText("\u7f51\u7ad9\uff1a");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
add(jLabel3, gridBagConstraints); jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "\u667a\u8054\u62db\u8058", "ChinaHR.com", "51job.com" }));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
add(jComboBox1, gridBagConstraints); jLabel4.setText("E-mail\uff1a");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
add(jLabel4, gridBagConstraints); jTextField4.setColumns(15);
jTextField4.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
TextFieldFocusLost(evt);
}
}); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0);
add(jTextField4, gridBagConstraints); buttonPanel.setLayout(new java.awt.GridBagLayout()); okButton.setText("\u6dfb\u52a0");
buttonPanel.add(okButton, new java.awt.GridBagConstraints()); cancelButton.setText("\u53d6\u6d88");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.insets = new java.awt.Insets(0, 20, 0, 0);
buttonPanel.add(cancelButton, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 4;
gridBagConstraints.insets = new java.awt.Insets(15, 0, 0, 0);
add(buttonPanel, gridBagConstraints); }
if(!evt.isTemporary()){
if(!selectField(evt.getComponent()).isFocusOwner()){
selectField(evt.getComponent()).requestFocusInWindow();
System.out.println("我是焦点");
}
if(!checkField(selectField(evt.getComponent())));
}
}
private void errorTreatmentField(javax.swing.JTextField field){
field.selectAll();
field.requestFocusInWindow();
javax.swing.JOptionPane.showMessageDialog(null,
message,
"Invalid Value",
javax.swing.JOptionPane.WARNING_MESSAGE);
}
private boolean checkField(javax.swing.JTextField field){
return isValidMatch(field.getText(),regex);
}
private javax.swing.JTextField selectField(java.awt.Component component){
if(component == jTextField1){
message = "输入的公司名信息错误.\n输入的字符只能为 字母 汉字 空格 小括号 - \n请重新输入.";
regex = "[-a-zA-Z() \u4E00-\u9FA5]{1,25}";
return jTextField1;
}else if(component == jTextField2){
message = "输入的职位信息错误.\n输入的字符只能为 小括号 字母 数字 汉字 空格 : / - \n请重新输入.";
regex = "[-:/() \\w\u4E00-\u9FA5]{1,30}";
return jTextField2;
}else {
message = "输入的E-mail地址错误.\n输入的格式为[email protected] \n请重新输入.";
regex = "\\w{1,20}@\\w{3,10}\\.\\w{2,8}";
return jTextField4;
}
}
private boolean isValidMatch(String input, String regex){
Matcher matcher = Pattern.compile(regex).matcher(input);
return matcher.matches();
}
这里有例子思路不一样