SWT中当光标移开文本框时验证

该博客介绍了在SWT环境中,如何在文本框失去焦点时进行验证操作。通过监听SWT.FocusIn和SWT.FocusOut事件,实现对输入内容的检查,包括非空验证、整数范围验证以及比较两个文本框间数值的逻辑验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


//定义变量
    private String checkname = "";
    private int checktype = 0;

bmiMin = new Text(composite_1, SWT.BORDER);
        bmiMin.setBounds(604, 40, 33, 20);
        bmiMin.setTextLimit(3);
bmiMin.addListener(SWT.FocusIn, new Listener() {
			public void handleEvent(Event event) {
				if (checktype == 0) {
					checkname = "bmiMin";
					checktype = 1;
				}
			}
		});

		bmiMin.addListener(SWT.FocusOut, new Listener() {
			public void handleEvent(Event event) {
				if(bmiMin.getText() == null || "".equals(bmiMin.getText().trim())){
					checkname = "";
					checktype = 0;
				}else{
					String value="";
					
					if ("bmiMin".equals(checkname) && checktype == 1) {
						
						 value=CommonCheck.checkIntNum(CommonCheck.dele(bmiMin.getText().trim()));
					
						 if(!"".equals(value)){
								loginPrompt=new LoginPrompt(value);
								loginPrompt.open();
								bmiMin.setText("");
								bmiMin.forceFocus();
							}else{
								
									if(Integer.parseInt(bmiMin.getText())<15 || Integer.parseInt(bmiMin.getText())>150){
										
										loginPrompt=new LoginPrompt("BMI应在15~150之间");
										loginPrompt.open();
										bmiMin.setText("");
										bmiMin.forceFocus();
									
									}else{
										
										int num=0;
										if(bmiMax.getText()!=null && !"".equals(bmiMax.getText())){
											num=Integer.parseInt(bmiMax.getText());
											if(num<Integer.parseInt(bmiMin.getText())){
												loginPrompt=new LoginPrompt("最小BMI不能大于最大BMI");
												loginPrompt.open();
												bmiMin.setText("");
												bmiMin.forceFocus();
											}else{
												checkname = "";
												checktype = 0;
											}
										}else{
											checkname = "";
											checktype = 0;
											
										}
										
									}
								
							}
					}
					
				}
			}
		});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值