問題タブ [java-2d]

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.

0 投票する
4 に答える
1194 参照

java - Java2D: Line オブジェクトでイベントをキャプチャする

線、円などを持つ JPanel があります。線をクリックすると、イベントは線イベントまたは一般的な JFrame イベントとして報告されます。ユーザーが線をクリックして移動した場合、線を移動できる必要があります。これはJava2Dで可能ですか?

0 投票する
3 に答える
740 参照

java - 制約/ボックス内でテキストをできるだけ大きくする「ズーム」

最初の問題: 400 ピクセルの幅があり、その制約内にテキストをできるだけ大きく収める必要があります (したがって、テキストはその量のスペースを使用する必要があります)。

新しい制約を導入します。テキストが単に「A」の場合、高さ 100 ピクセル (または特定のフォント サイズ) を超えてズームしてはなりません。

次に、最終的な状況: 改行。たとえば、400 x 150 ピクセル内に可能な限り大きな方法でいくつかのテキストを合わせます。

明らかな方法は、ポイント 1 から始めて、それ以上収まらなくなるまで増やすことです。これは 3 つの問題すべてに有効ですが、非常に粗雑です。境界内の単一行のフィッティングは、固定小数点サイズで記述し、結果のテキストのピクセル境界を確認し、変換で単純にスケーリングすることで実行できます (テキストも適切にスケーリングされます。 TransformUIを確認してください)。

これを攻撃する他の方法のアイデアは大歓迎です!

0 投票する
1 に答える
213 参照

java - Java2d: マウスのドラッグ時に選択ウィンドウを表示するオプション

Java2d に画像があり、マウスを左クリックしてドラッグすることで、画像の四角形の部分を選択するオプションをユーザーに提供したいと思います (mspaint に似ています)。これは実際にどのように行われますか?

ありがとうございました。

0 投票する
2 に答える
160588 参照

java - Java2D:線幅を大きくする

Line2Dの幅を広げたい。私はそれをする方法を見つけることができませんでした。この目的のために実際に小さな長方形を作成する必要がありますか?

0 投票する
1 に答える
1100 参照

java - Java2d:線のグラデーションを設定する

平面内に複数の点があり、それらの点を通過する数百の線があります。一部のポイントには、他のポイントよりも多くの線が通過する場合があります。密集した線に関連付けられた、ある種のグラデーションまたは明るさを表示したいと考えています。これはjava2dで可能ですか?

これを参照してください: http://ft.ornl.gov/doku/_media/ft/projects/paraaxis.jpg

ありがとうございました。

0 投票する
3 に答える
376 参照

java - Java2Dで文字列をクリップし、最後に...を追加するにはどうすればよいですか?

JavaSwingアプリケーションで請求書を印刷しようとしています。私はPrintableメソッドを拡張して実装することでそれを行いpublic int print(Graphics g, PageFormat pf, int page)ます。

文字列を列に描きたいのですが、文字列が長すぎる場合は、クリップして「...」で終わらせたいと思います。弦を測定して正しい位置にクリップするにはどうすればよいですか?

私のコードのいくつか:

myStringつまり、最大120pxに制限するにはどうすればよいですか?

を使用することはできますmetrics.stringWidth(myString)が、ストリングをクリップする必要がある位置がわかりません。

期待される結果は次のとおりです。

0 投票する
2 に答える
1163 参照

java - Java Swing を使用してテキストを 2 列で印刷するにはどうすればよいですか?

文字列に保存された長いテキストがあります。テキストを 1 ページに 2 列で印刷したいと考えています。Java Swing を使用してこれを行うにはどうすればよいですか?

改行を使用するときにテキストを折り返す方法がわかりません。Java チュートリアルのレッスン: 印刷を読みましたが、 FontMetrics.

Java API にこれに適したメソッドはありますか、またはこれに使用できる優れたライブラリはありますか?

0 投票する
17 に答える
17916 参照

java - Swing アプリケーションを終了するときにときどき InterruptedException が発生する

最近、クアッドコア ハイパースレッディング プロセッサ (i7) を搭載したより強力なコンピューターにコンピューターを更新したため、多くの実際の同時実行が可能になりました。現在、開発中のアプリケーション (Swing GUI を使用) を終了 () すると、次のエラーが発生することがありますSystem.exit(0)

ええと、それがより並行性に対応したハードウェアで発生し始め、スレッドに関係しており、時折発生することを考えると、明らかにある種のタイミングの問題です. しかし問題は、スタック トレースが非常に短いことです。私が持っているのは上記のリストだけです。私自身のコードはまったく含まれていないため、バグがどこにあるかを推測するのはやや困難です。

誰かが前にこのようなことを経験したことがありますか? それを解決する方法はありますか?

編集: Swingアプリケーションを終了するのSystem.exit(0)は「汚れている」かもしれないのでEXIT_ON_CLOSE、アプリケーションが終了したときに重大なことは何も起こらないようにしたいので、メインフレームをに設定したくないので、それが実行されるようにメカニズムを追加しましたdispose()を呼び出す前のメイン フレームのメソッドSystem.exit(0)。これでかなりきれいになったはずですが、時折例外が発生します。System.exit(0)が呼び出された後に発生します。dispose()問題なく動作します。つまり、シャットダウン フックから来ている必要があります。

配列Windowをループしてすべての s を明示的に破棄しようとしましたが (所有者のないs などが含まれています)、違いはありませんでした。この問題は、「クリーンネス」(つまり、終了する前にネイティブの画面リソースを明示的に解放する) とはほとんど関係がないようです。それは別のものですが、何ですか?Window.getWindows()Dialog

編集2:デフォルトのクローズ操作を設定してEXIT_ON_CLOSEも違いはありません。http://www.google.com/search?q=sun.java2d.Disposer.run(Disposer.java:125)でいくつかのバグ レポートが見つかったため、これは Sun の Java2D 実装のバグである可能性があります。このようなバグは、実際にはほとんど無害であるため、長い間修正されない可能性があると想像できます。シャットダウン フックからの例外は、他の人を傷つけることはほとんどありません。stderrこれが GUI アプリで発生することを考えると、コンソールまたはログに送信されない限り、例外は認識されません。

0 投票する
2 に答える
1154 参照

java - グラフィックでチェッカーボード スタイルを作成する (Java アプレット)

さて、私は 32x32 の正方形のタイルを (マップを作成するために) 描画するアプレットを作成しています。私の問題は、8 x 8 にしたいときに斜めに移動することです (したがって、配列が 8 x 8 の形になる方法です)。それで...どうすればこれを修正できますか?

ありがとう。とにかく、コード bbcode はお尻なので... ここにペーストビンの URL :-)

http://www.danflow.pastebin.com/kAUEpg1E

そして、ここに問題があります:

それは私が望む方法ではありません

8 x 8 が欲しい... :(

0 投票する
3 に答える
3062 参照

java - Java2Dでは細い線を描画できません

1ピクセルのストロークでポリゴンを描画しようとしています。ポリゴン全体が100でスケーリングされるため、線幅を0.01に設定しました。ただし、何らかの理由で、ポリゴンは1ではなく100ピクセルのように見える画面上の線幅で描画されます。

GeneralPath多角形として使用しています。図形の描画に同じアプローチを使用すると、細い線が描画されLine2Dます。


新しい情報:以前にGraphics2Dオブジェクトに0.02fのBasicStrokeが設定されていたため、setStrokeラインを削除すると2ピクセルのラインが正しく取得されます。

これが実際のsetStrokeラインです