問題タブ [java-canvas]
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 - JavaFX と Canvas の高速更新
JavaFX の下にカスタム キャンバス ウィジェットを作成しようとしています。これは、関連のない多くの作業スレッドから情報を収集します。「更新」イベントはさまざまな速度で発生する可能性があり、速すぎる場合もあれば、まったく発生しない場合もあります。つまり、「速すぎる更新」と「アイドル時間」の要件に適切に対処する必要があります。更新の数が多すぎるため、更新が実行されるたびにRunnableを発行することは適切な解決策ではありません。
テストのためだけに、私の強引なアプローチは、AnimationTimerを作成して Canvas オブジェクトのビジュアルを更新することでした。このソリューションは問題なく機能しますが、もちろん、Canvas を更新する必要がない場合もあり、手順全体が非効率になります。
私の問題に対する最も近い答えは、GUIUpdater ヘルパー クラスを使用したこの投稿のようですが、Canvas には直接更新プロパティがないようです。必要な更新機能をバインドされたパラメーターで「プラグイン」する方法を見つけようとしていますが、運が良ければ. Canvasに「更新」イベントがあるかどうかも理解しようとしましたが、見つかりませんでした。私が見つけた他のすべての回答は、私が理解している限り、要件を満たしていませんでした。
前もって感謝します
編集
データが変更された場合にのみキャンバスが描画されるようにするために使用するコードを次に示します。
次のようなものでトリガーされます。
java - コンテキストメニューをキャンバス要素に追加するには?
問題 : javafx.scene.control 要素でのみ機能する addContextMenu(menu) を使用して ContextMenu を Canvas または Pane 要素に単純に「追加」することはできません (Canvas または Panel はこのクラスを拡張しません)。
質問 : ContextMenu 項目を Canvas 要素に「登録」する「クリーンな」方法はありますか? このメニューの標準的な動作を期待しています (Canvas 要素を RMB でクリックした後に表示する、LMB でクリックすると自動的に非表示になるなど)。
java - Javaでキャンバスを使用して、画面の幅と高さに応じて文字列または長方形をどのように描画しますか
String または Rectangle を描画する方法を知りたいです (JFrame は完全にフルスクリーンになっています)。
私の Main.java クラスの内容は次のとおりです。
後で私が持っている別のクラスで:
}
このコードは機能して実行されますが、テキストが完全に中央に配置されていないため、中央ではなく中央に配置したいと考えています。ありがとう!
java - マルチスレッドによる並行メソッド
私は Java でゲームを作成しようとしていますが、マルチスレッドを扱うのはこれが初めてです (まあ、Clip クラスを介して同時に音楽を再生することは別として)。JPanel を拡張する Canvas クラスがありますが、Canvas クラス内には次に示すように、入力を取得する KeyListener:
私の目標は、キャンバス上で両方のプレーヤー (長方形) を同時に移動できるようにすることです。現在、一度に移動できるのは 1 つだけで、両方を同時に移動することはできません。マルチスレッドを扱うのはこれが初めてなので、初歩的な間違いを犯している場合は事前にお詫びします。
java - プロセス間で Java Canvas を共有する
java.awt.Canvas
Java プロセスでオブジェクトを作成し、それを別の (子) プロセスに渡し、他のプロセスに軽量 (swing) コンポーネントを配置させるにはどうすればよいですか。子プロセスは、キャンバスに配置したコンポーネントのイベントを処理する必要があります。そしてもちろん、イベント ディスパッチ スレッドは期待どおりに機能するはずです。
java - KeyPressed を使用してキャンバス上で画像を移動する
私の KeyPressed は機能していますが、私の moveLeft メソッドから avatarDX に変更はありません。moveLeftで何か間違ったことをしましたか? シンプルなはずですが、何が間違っていたのかわかりません。エラーメッセージはありません。
キャンバスに画像を描いています
KeyPressedの場合、私は持っています
そしてmoveLeftは
私はこれが非常に新しいので、助けていただければ幸いです。