Я заметил, что весь метод JOptionPane
«вмешивается» в ActionListeners
. Мне нужно, чтобы ActionListener оставался активным после открытия JOptionPane.Избегайте вмешательства JOptionPane с прослушивающими действиями
Например:
У меня есть JButton
, зарегистрировать мышь нажата и нарисовать красную кнопку. После освобождения я рисую его синим.
- Если я просто нажмите это, кнопка станет синим. Ok
- Если я держу его, кнопка останется красной. Ok
- Если я нажмите его и установить его открытым диалог
JOptionPane
, он остается красным, даже если я выпустил мышь. Не Ok
я не смог найти никакой документации по этому конкретному поведению, может кто-то мне точку в правильном направлении?
Мне действительно нужно использовать JOptionPane
.
Я не знаю, если я больше впечатлен тем, насколько хорошо этот ответ или как быстро вы написали. Отлично работает, спасибо. Один вопрос: при создании графического интерфейса вы вызываете .invokeLater(), почему? Нужно ли мне ? Потому что просто вызывает его (.invokeLater), чтобы открыть OptionPane. –
@LoryA: отредактирован ответ, чтобы показать ** оба метода **, включая первый, где я ставил очередь на панель joption в потоке событий, а второй, где я показываю optionpane как немодальный диалог. –
@LoryA: Я стараюсь создать графический интерфейс в потоке событий Swing, чтобы предотвратить странные, непредсказуемые ошибки потоковой передачи. Иногда они происходят, и я их видел. –