Как сделать так, чтобы легкий компонент не получал события мыши? - PullRequest
1 голос
/ 13 октября 2019

У меня есть JTextComponent с некоторыми CaretEvent с. Мне нужно отключить все компоненты, чтобы предотвратить взаимодействие с пользователем после определенных действий, и когда эти действия будут завершены, включите эти JTextComponent s, чтобы позволить пользователю снова взаимодействовать с GUI. Очевидно, что когда пользователь нажимает на JTextComponent, слушатель каретки выполняет свои действия, и я хочу предотвратить это.

В настоящее время я удалил CaretListener s, чтобы предотвратить это, и после завершения моих внутренних операций я повторнодобавить эти CaretListener с.

Есть ли другой способ предотвратить это? Такое удаление MouseEvent s для этих компонентов и переназначение этого позже?

1 Ответ

1 голос
/ 13 октября 2019

Один из способов отключить взаимодействие с пользователем - не дать текстовому компоненту получить фокус программы:

myTextComponent.setFocusable(false);

А потом, когда вы захотите снова разрешить взаимодействие, сделайте тот же вызов с очевиднымtrue параметр:

myTextComponent.setFocusable(true);
...