最近一直在做一个报文模拟器MessageSimulator,其中要实现一个类似eclipse新建文件的功能,需要监听Text文本框的输入。当文本框的输入为空、已存在相同文件的时候,OK键置灰不能点击。
我用了VerifyListener监听器,和ModifyListener监听器来实现这个功能。VerifyListener监听器通过verifyText(VerifyEvent e)方法响应校验输入事件;ModifyListener监听器通过modifyText(ModifyEvent e)方法响应文本被修改的事件。
/**
* Create contents of the button bar
*
@param parent
*/
@Override
protected
void createButtonsForButtonBar(Composite parent) {
okButton = createButton(parent, IDialogConstants.
OK_ID, "保存",
true);
if(operateType.equals("添加")){
//添加报文类型时,输入名字前不能"保存"
okButton.setEnabled(
false);
}
//监听typeNameText的输入,校验输入事件
typeNameText.addModifyListener(
new ModifyListener() {
public
void modifyText(
final ModifyEvent arg0) {
okButton.setEnabled(
true);
tipLabel.setText("");
String typeName = typeNameText.getText();
if(!typeName.equals("") && operateType.equals("添加")){
//不允许添加已存在的报文类型名
File f =
new File("conf/message/"+typeName);
if(f.isDirectory() || f.isFile()){
tipLabel.setText("报文类型名不能重复!");
okButton.setEnabled(
false);
}
}
}
});
createButton(parent, IDialogConstants.
CANCEL_ID, "取消",
false);
}
初始的时候,Text文本框没有内容,提示:不能为空,【保存】按键置灰
输入321后,【保存】按键可按下了
当输入和当前文件重名时,【保存】按键再次置灰,提示:不能重名
转载于:https://blog.51cto.com/xchen/689457