問題タブ [eventqueue]
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 - Java クラス Eventqueue は正確には何をしますか?
Java
Oracle のクラスに関する情報を読んだ後でjava.awt.EventQueue
も、このクラスがどこで使用され、何ができるかはまだ明確ではありません。誰かが私のためにこれを説明してもらえますか.
javascript - Zk マルチビュー通知
zk フレームワークを使用してプロジェクトに取り組んでいます。同時にアプリケーションを使用できる多くのユーザーがいます。
そのうちの 1 人がフィールドの値を変更して発火した場合、@notifychange
他のすべてのユーザーのビューを更新したいと考えています。
たとえば、すべてのユーザーが同じページにいる場合
そのうちの1人が、他のユーザーのラベルの値を更新したいテキストフィールドの値を変更します。
で作業しようとしてeventQueue
いますが、それを実装する方法がわかりませんでした。
listbox - ページを更新した後、EventQueue.subscribe メソッドから Listbox のモデルを設定できません
EventQueue.subscribe
ページを更新した後、メソッドからモデルを設定できません。
.zul
メイン ファイルとインクルードファイルの 2 つのページがあり.zul
ます。zul ごとに個別のコントローラーがあります。ユーザーが含まれているページをクリックしてlistbox
顧客オブジェクトを渡すと、含まれているページのコントローラーからイベントを発行します。
メイン.zul
ページのコントローラで、イベントを受け取り、顧客オブジェクトを取得します。次に、その ID に基づいて、メインlistbox
に対応するデータを提供します。
初めて、それはうまくいきます。イベントを受け取り、オブジェクトを取得し、リストボックスにモデルを正常に提供します。ただし、別のページに移動して戻ると、NullPointerException が発生します。ログ ファイルで、セッションは同じで、ページは破棄されていますが、デスクトップは生きていることに気付きました。ZK 5.0.10 を使用しています。
で
org.zkoss.zk.ui.AbstractComponent.getAttachedUiEngine(AbstractComponent.java:387) at org.zkoss.zk.ui.AbstractComponent.smartUpdate(AbstractComponent.java:1487) at org.zkoss.zk.ui.AbstractComponent.smartUpdate( AbstractComponent.java:1462) org.zkoss.zk.ui.AbstractComponent.smartUpdate(AbstractComponent.java:1495) org.zkoss.zul.Listbox.resetDataLoader(Listbox.java:2982) org.zkoss.zul.Listbox .setModel(Listbox.java:2377) で com.is.sdbooks.controller.ComposerTest.refreshModel(ComposerTest.java:169) で com.is.sdbooks.controller.ComposerTest.onDoubleClick$dataGrid(ComposerTest.java:180) でsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) で sun.reflect.NativeMethodAccessorImpl.invoke(未知のソース) で sun.reflect.DelegatingMethodAccessorImpl.invoke(未知のソース) で java.lang.reflect.Method.invoke(未知のソース) でorg.zkoss.zk.ui.event.GenericEventListener.onEvent(GenericEventListener.java:81) org.zkoss.zk.ui.impl.EventProcessor.process0(EventProcessor.java:192) org.zkoss.zk.ui.impl.EventProcessor.process( EventProcessor.java:138) org.zkoss.zk.ui.event.Events.sendEvent(Events.java:306) org.zkoss.zk.ui.event.Events.sendEvent(Events.java:329) org .zkoss.zk.ui.AbstractComponent$ForwardListener.onEvent(AbstractComponent.java:3052) at org.zkoss.zk.ui.impl.EventProcessor.process0(EventProcessor.java:192) at org.zkoss.zk.ui.impl org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1626) の .EventProcessor.process(EventProcessor.java:138) org.zkoss.zk.ui.impl.UiEngineImpl.process(UiEngineImpl.java) :1410) org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1134) で org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:562) org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:457) で org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:465) で javax.servlet.http で.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org. org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve. java:191) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) で org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) で org.apache.catalina.core .StandardEngineValve.invoke(StandardEngineValve.java:109) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) at org .apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JioEndpoint.java:489) at java.lang.Thread.run (出典不明)
java - Swing のメイン ウィンドウを閉じると、EventQueue の他のスレッドが作成されない
Java SE 8 デスクトップ アプリケーションを作成します。Swing UI を備えています。
プラットホーム:
- エクリプスIDE
- Windows 10 OS
右上隅の「X」を押してメインウィンドウを閉じると、そのようなイベントをリッスンするリスナーができます。
ここのリスナー:
そのため、リスナーを使用してウィンドウを閉じるイベントを識別し、それが発生したときに、プロジェクト (DB 上のデータ) を保存するかどうかをユーザーに尋ねます。
このメソッド ( saveUnsavedTmpProject(continueOn);
) は、プロジェクトを保存する名前を取るはずの別のウィンドウにつながります。
これでCountDownLatch
、ユーザーが他のパネルでプロジェクトの保存を確認/拒否するまで、メイン ウィンドウが強制的に表示されたままになります。
ウィンドウを作成してプロジェクトを保存する他のクラス メソッドは次のとおりです。
ここで、アプリを実行すると、run()メソッド内に入りません (ウィンドウがポップアップしません)。しかし、それは、上記のリスナーからのみこのメソッドにアクセスした場合にのみ発生します。がCountDownLatch
あり、新しいスレッドの実行を停止しているようです。
ユーザーがプロジェクトの保存を確認/拒否すると、ラッチがカウントダウンされるため、実行フローが続行されます。それでも、 に追加のスレッドを作成しますEventQueue
。
スレッドが停止するのはなぜですか?