I started thinking over what the code was originally intended to do. The goal was to provide immediate response whenever a user entered data anywhere in the UI. So for example, the table is hooked to an ObservableValue. If the user changes data in any cell, the observable is updated, which notifies half a dozen other elements of the program which all update based on the change. Likewise, other elements of the UI could also be changed, again notifying all, the observers, including the table, which has columns that update on any change to the data, anywhere in the UI.
Originally, the calculations that were requested were all fast, i.e., tens of ms at most. Things have changed by adding UI elements that while they still either set objects in the observable or respond to changes in the observable, they take a long time to get their work done. Which created the request to post a "Just a minute..." dialog while they were working through their calculations.
I think that is where some of the problems occur. Press button -> update observable -> notify observers -> calculations -> update UI currently does not separate the set of calculations from the UI update because they used to be fast. I am actually trying to get the "Just a minute..." to post when I run a method that has been in the code from the start that updates the table, which updates the observable, which notifies the observers, which triggers calculations, which update other parts of the UI. But if I run that method in a thread other than the EDT, I think I am ending up with the final UI update running in that other thread also and then the table update is really slow. And, in fact, the button is not in a class that has any methods that are slow (it just updates a parameter in the observable), it is one of the other classes that is an observer that has the slow piece in it. That class usually needs to be silent, except, it has been requested that in one specific case, the user is warned. So I was trying to post the dialog from the class with the button that implements that one case. That is no longer sounding like a good idea.