我想知道这是否是从对话框中获取 PIN 的正确方法?
public static <T> T getFromGui(Supplier<T> supplier) {
if (CN.isEdt()) return supplier.get();
final Object[] holder = new Object[1];
CN.callSeriallyAndWait(() -> holder[0] = supplier.get());
@SuppressWarnings("unchecked") final T result = (T) holder[0];
return result;
}
public static String askPin() {
if (!CN.isEdt()) return getFromGui(() -> askPin(bankzugang));
...
final boolean cont = Dialog.show(
"Your PIN", BoxLayout.encloseY(pin, label), ok, cancel) == ok;
return cont? pin.getText() : "";
}
它似乎有效(尝试过一次),但我有点困惑callSeriallyAndWait:它是 的模拟吗SwingUtilities.invokeAndWait?有什么区别?
实际上,我需要一些对话框才能在每个线程中工作,包括 EDT。有没有比上面添加“getFromGui”行更好的方法?
慕容708150
相关分类