問題タブ [invokeandwait]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - InvokeAndWait からの戻り値
たとえば、ビューがユーザーにパスを選択するように求める機能を提供するJava GUIアプリケーションがあります。ユーザーがパスを選択するまで (またはユーザーがキャンセルするまで)、関数はブロックされている必要があります。
関数は EDT スレッドのコンテキストで呼び出されないため、invokeAndWait を使用します。パスがビューのプライベート メンバーである場合、次のようになります。
私の問題は、EDT コンテキストで選択されたパスを、最初に呼び出された関数に渡し、そこに返す方法でした。次の行はすでにブロックされています。
とりあえず私は private member で解決しましたpath
が、実際にはこの解決策が好きではありません.pathは一時的な変数であり、実際にはクラス自体とは何の関係もありません. これに対する別の解決策を探していたところ、 に出会いましたSwingWorker
が、これで「問題」を解決する方法がわかりませんでした。
別のアイデアは、getter と setter を使用してメンバーとして文字列を持つオブジェクトを作成して、この文字列を設定し、このオブジェクトの参照を渡して、EDT で文字列メンバーを設定し、getPath
関数でそれを返すことです。
誰かがよりスムーズな解決策を持っていますか?