Java Swing实现标签警告
最近一直在琢磨swing,在写用户添加管理那块要对用户信息进行判断,如果频繁点击按钮弹出窗口提示比较麻烦,所以我使用的是警告标签,如图那些黄色字体为警告标签
以用户名标签为例,放用户名标签代码
package alert;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class UsernametxtListener extends KeyAdapter {
private String username;
private JLabel alert;
private JTextField usernametxt;
/**
* @wbp.parser.entryPoint
*/
public UsernametxtListener(JLabel alert, JTextField usernametxt) {
super();
this.alert = alert;
this.usernametxt = usernametxt;
}
/**
* @wbp.parser.entryPoint
*/
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
/**
* @wbp.parser.entryPoint
*/
public void keyReleased(KeyEvent e) {
username=usernametxt.getText().trim();
//用户名判断
String re="^[a-zA-Z0-9\u4e00-\u9fa5]{3,20}";
if(!username.matches(re)) {
alert.setText("格式为汉字或字母或数字,其长度为3-20位");
alert.getText();
}else{alert.setText("");
}}
}
//用户添加
public class UserAddInterFrm extends JFrame {
private JTextField usernametextField;
private JPasswordField passwordField;
private JPasswordField resurepasswordField;
private JTextField nametextField;
private JTextField telephonetextField;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JComboBox statecomboBox;
private JRadioButton ManRadioButton;
private JRadioButton WomanRadioButton;
private DLUtil dlutil=new DLUtil();
private UserMangeDao usermangedao=new UserMangeDao();
private JTextField codetextField;
private JTextField recodetextField;
private JButton btnNewButton_2;
private JButton btnNewButton;
private JLabel password_alert;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
UserAddInterFrm frame = new UserAddInterFrm();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
//用户添加主界面,这里我主要显示用户名相关的
public UserAddInterFrm() {
getContentPane().setBackground(new Color(153, 204, 51));
setTitle("\u6DFB\u52A0\u7528\u6237\u754C\u9762");
setBounds(100, 100, 672, 729);
usernametextField = new JTextField();
usernametextField.setBounds(248, 29, 268, 32);
usernametextField.setColumns(10);
//用户警告标签
JLabel username_alert = new JLabel("");
username_alert.setFont(new Font("宋体", Font.BOLD, 12));
username_alert.setForeground(Color.YELLOW);
username_alert.setBackground(SystemColor.scrollbar);
username_alert.setBounds(255, 75, 261, 15);
getContentPane().add(username_alert);
//注意这块是重点!!!!
//用户名警告标签提示
UsernametxtListener ul=new UsernametxtListener(username_alert,usernametextField);
this.usernametextField.addKeyListener(ul);
}
}