Я понял, что мой код работает, но моя проблема связана с потоками.Мой код был что-то вроде:
startWaitCursor();
work(); // server request that takes time
stopWaitCursor();
и изменил его на:
startWaitCursor();
SwingUtilities.invokeLater(new Runnable() {
poblic void run() {
try
{
work(); // server request
}
finally
{
stopWaitCursor();
}
, делая эту модификацию, я мог видеть настройки, которые я сделал в методе startWaitCursor (), пока клиент ожидаетответ от сервера.
Но все же есть небольшая проблема.В методе startWaitCursor () я отключил события клавиш, мыши и фокуса для стеклянной панели, но события по-прежнему записываются основным кадром, даже если отображается glassPane.
addMouseListener(new MouseAdapter() {});
addMouseMotionListener(new MouseMotionAdapter() {});
addKeyListener(this);
setFocusTraversalKeysEnabled(false);
После того, как ответ сервера достигнут клиенту и вызван метод stopWaitCursor (), события обрабатываются в главном фрейме.
Если я отключаю основной фрейм моего приложения, пока клиент ожидает, чемкурсор не изменяется на wait_cursor, если я не отключаю основной кадр, курсор изменяется, но события ставятся в очередь.
cheers ...