Можно использовать следующий отрывок. Это лучше, потому что rootPane получит события от любого компонента в диалоговом окне. Можно заменить setVisible (ложь), располагают (), если Вы хотите.
public static void addEscapeListener(final JDialog dialog) {
ActionListener escListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
}
};
dialog.getRootPane().registerKeyboardAction(escListener,
KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
JComponent.WHEN_IN_FOCUSED_WINDOW);
}
Мне тоже пришлось это сделать, и я использовал приведенную ниже запись в блоге Скотта Гатри, чтобы заставить меня начать ....
Отлично сработал для меня.
Я не создавал нового провайдера или что-нибудь. В блоге Скотта это красиво изложено. Хотя это довольно хакерский прием, но я быстро помог ему и помог.
С помощью этого трюка вы можете использовать Windows auth с ролями на основе БД.
Вы можете использовать MembershipProvider, используя ActiveDirectory Информация здесь