001package polaris.sdk.ui.controls; 002import polaris.sdk.ui.*; 003 004import java.awt.event.KeyEvent; 005public class KeyBindingField extends TextField { 006 private int key,modifiers; 007 public KeyBindingField(){readOnly=true;placeholder="点击后按下快捷键";} 008 public int keyCode(){return key;}public int modifiers(){return modifiers;} 009 @Override public void event(UiEvent e){if(e.type==UiEvent.Type.KEY){if(e.key==KeyEvent.VK_SHIFT||e.key==KeyEvent.VK_CONTROL||e.key==KeyEvent.VK_ALT||e.key==KeyEvent.VK_META)return;if(e.key==KeyEvent.VK_BACK_SPACE||e.key==KeyEvent.VK_DELETE){key=modifiers=0;value("");}else{key=e.key;modifiers=e.modifiers;String mods=KeyEvent.getModifiersExText(modifiers);value((mods.isEmpty()?"":mods+"+")+KeyEvent.getKeyText(key));}changed();e.handled=true;return;}if(e.type!=UiEvent.Type.TEXT)super.event(e);} 010}