アプレットのガラスペインを使ってアプレットの一部を拡大するプログラムを作成しました。これを行うために、私はもちろん、アフィン変換を使用してコンテンツペインのレンダリングされたコンテンツをスケールしてから、ペインにペイントします。しかし、マウスイベントは、適切な位置にくるために別のトランスフォームによって逆にスケールされなければならないので、私はそれらをガラス区画で傍受して座標を変換する必要があります。しかし、これを実行した後、イベントをコンテンツペインに転送する方法を見つけることができませんでした。最初はComponent.dispatchEvent(AWTEvent)メソッドを試しましたが、これは転送しようとするイベントを無視するようです。手動でコンポーネントを取得し、各mouseListenerおよびmouseMotionListenerのメソッドを呼び出すことで成功しましたが、これらの結果は最高でもバグです。コンポーネントにイベントを送信する標準的な方法はありますか?マウスのイベントをJavaの隠れたパネルに転送する
3
A
答えて
1
は、以下のことを試してみてください。
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(theEvent)
私は私はそれが動作するはずと信じてこれを自分でしようとしませんでした。少なくとも私が理解する限り、UIテストツールはこの方法を使用しています。
ところで、どのように拡大鏡を実装していないのですか?ロボットを使う?
関連する問題
- 1. Javaマウスが押された - イベントなし
- 2. KeyPressイベントを転送する
- 3. GWTパネル間でのマウスイベントの転送
- 4. TortoiseHgに隠された詳細パネル
- 5. マウス移動イベントで画像を回転
- 6. winapiイベントを別のウィンドウに転送
- 7. Javaサーブレットとサーバー送信されたイベント
- 8. Java転送オブジェクト
- 9. トーストが隠されたイベント
- 10. 転送のArrayList [0] javaの
- 11. Javaイメージ転送の問題
- 12. Java MMOゲームのデータ転送
- 13. Javaでソケットを介したファイル転送
- 14. javaサーブレット転送クッキー
- 15. Javaファイル転送API
- 16. Java Jsonデータ転送
- 17. C#の回転パネル
- 18. マウス・ボタンをクラス・イベントのトリガーにする
- 19. UIScrollViewからUIButtonへの転送イベント
- 20. Get-wineventで転送されたイベントの時刻を取得しますか?
- 21. パネルをJava Swingに添付されたパネルから削除するには?
- 22. Javaの隠されたURLにリダイレクト
- 23. インスタンス化されたオブジェクト情報転送のJavaオーバーライドメソッド
- 24. javaでhttpパッケージを転送する
- 25. eclipseでjavaプロジェクトを転送する
- 26. パネルを隠しているときにJDialogのタイトルを失う(Java)
- 27. WPF:Window_Loadedにマウス位置を取得する方法(オブジェクト送信者、RoutedEventArgs e)のイベント
- 28. イベントを親ビューに転送する(Titanium Studio、IPhone)
- 29. ドメインに送信されたすべてのメールを転送する(Google App Engine)
- 30. Quartz Schedulerのキューメッセージを読んでJavaコンポーネントに転送する
SystemEventQueueにイベントをポストすると機能しません。位置をスケール解除するために、入力イベントをガラスペインにトラップしているので、無限ループに陥ります。ガラス板の下にあるコンテンツペインにイベントを投稿する必要があります。 –
どのように拡大を実装したかについては、基本的にアプレットの正確なサイズのBufferedImageを作成した後、バッファリングされたイメージ上でcreateGraphics()を呼び出して、Graphics2Dオブジェクトを取得し、次にScaling AffineTransformオブジェクトを適用します。次に、GlassPanelのペイントメソッドをオーバーライドし、単にバッファリングされたイメージをパネルに描画させます。残りのすべては、アプレットのコンテンツペインでペイントを呼び出すスレッドを持ち、バッファされたイメージのスケーリングされたグラフィックスオブジェクトを渡すことです。 –
私は操作したいコンポーネントにイベントのソースオブジェクトを再割り当てしようとしましたが、これは無限ループの問題を解決するようですが、まだイベントを適切に転送していません。 –