問題タブ [awt]
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 - JPanel をベクター グラフィックスにエクスポートする
JPanel の画像をベクター グラフィックス ファイルにエクスポートして、画面よりも高い解像度で編集および印刷できるようにしたいと考えています。基本的にpaint()
、描画コマンドをベクターグラフィックファイルに保存する目的の Graphics でその関数を呼び出す必要があります。
これを行うための良い、簡単な方法は何ですか? おすすめのライブラリは?どのベクター形式が最適で、その理由は何ですか?
java - Java での Tiff の読み取り/書き込み
Java 5 で TIFF ファイルを読み書きするための、Apache または同様のライセンスを使用するオープンソース ライブラリのアイデア (できれば、 ImageIOを含む AWT 画像処理ライブラリを使用します)。
Java 6 が TIFF をサポートすることになっていることは承知しています。Sun の JAI 実装については知っていますが、その ライセンスは私が働いている会社では機能しません。と Asprise がありますが、これは商用製品です。Sanselan は良さそうですが、それはまだリリースされた製品ではありません。
別の TIFF リーダーの実装に関する推奨事項はありますか?
java - sun.awt パッケージの非公開クラスにアクセスする [具体的には: FetcherInfo]
質問:
アプリにパフォーマンス上の問題があり、ボトルネックはsun.awt.image.ImageFetcher.run
で、プロファイラーから (それ以上) 意味のある情報を取得できません。そこで、ImageFetcher が行っている仕事を見てみるのもいいだろうと考えました。
すべてのジョブFetcherInfo
を保持するクラスにアクセスできませんでした。インスタンスImageFetcher
を取得するには、 を呼び出す必要があります。FetcherInfo
FetcherInfo.getFetcherInfo()
パッケージでクラスを作成しましたsun.awt.image
(私のプロジェクトでは、rt.jarをいじりませんでした)。
私がFetcherInfo
使用するために:
そして、私は例外を受け取ります:Exception in thread "IMAGE-FETCHER-WATCHER" java.lang.IllegalAccessError: tried to access class sun.awt.image.FetcherInfo from class sun.awt.image.FetcherDebug
また、スタック トレースは次を指しています。
同じ例外が発生しました:
したがって、誰でも次のいずれかの方法についてアイデアを持っています。
- ImageFetcher インスタンスを取得する
- どの画像がロードされているかを調べる
解決
問題は、クラスをsun.java.awt
パッケージに入れずに、パッケージで保護されたメンバーにアクセスするためにクラスをパッケージに入れたことrt.jar
であり、呼び出し側で例外がスローされImageFetcher.class
ました。
java - 長方形に合うようにフォントをスケーリングする方法が必要
長方形 (の長さ) に収まるようにフォントをスケーリングするコードをいくつか書きました。幅 18 から始まり、収まるまで繰り返します。
これは恐ろしく非効率に思えますが、ループしない方法が見つかりません。この行は、スケーリングするゲーム グリッド内のラベル用であるため、回避策がわかりません (四角形をラップ、カットオフ、および拡張することはすべて受け入れられません)。
それは実際にはかなり速いです。私はこれを何百もの長方形に対して行っていますが、タッチを遅くするのに十分な速さです。
誰もそれ以上のことを思いつかない場合は、テーブルから最初の推測をロードして (18 よりもはるかに近くなるように)、これを使用します。遅延を除いて、うまく機能します。
java - Java: (デスクトップ全体ではなく) 1 つまたはすべての使用可能なモニターの解像度を取得しますか?
TwinView を使用して (私が信じている) 一緒に接続された 2 つの異なるサイズのモニターがあります。
私は試した
そして得る
これは、両方のモニターを一緒にカウントする場合に当てはまります。
これの代わりに、次のいずれかを達成できるようにしたいと考えています。
- 現在のモニターの解像度を取得する
- メインモニターの解像度を取得する
java - マウスドラッグイベントを使用してJavaアプレットで長方形を描く方法
私はJavaを使用しています。mousedrag イベントに基づいて四角形を描画したい。ユーザーがマウスをドラッグすると、アプレットの四角形は現在のマウス座標に基づいて増減する必要があります。私は次のコードを持っています。
次のコードでは、描画操作を実行しているキャンバスを拡張する [b]SelectionArea[/b] クラスを使用しています。このクラスで [b]image[/b] 変数を使用してダブル バッファリングを行い、ちらつきを減らし、アプレットの以前の状態を保存します (つまり、アプレットのコンテンツを描画します)。
しかし、最初の長方形を描画すると、コードは正常に機能します。2 番目の四角形の描画を開始すると、以前に描画された四角形が消えます。前に描いた四角形を画面に表示したい
誰でもこれを解決する方法を教えてもらえますか。
}
}
また、このコードを全画面表示モードで実行すると、マウスを離した後にのみ四角形が画面に表示されることがわかります。しかし、マウスをドラッグしている間、長方形を画面上に表示したいので、現在のマウス座標に従って寸法を変更する必要があります。誰でも私を助けることができますか?
java - ヘッダーとフッターをカラーで印刷しますか?
JTableを印刷するときに、色付きのヘッダーとフッターを作成しようとしています。具体的には、javax.swing.JTableのgetPrintable()を見ていますが、MessageFormatには、ヘッダーまたはフッターの色を指定するオプションがありません。
どうすればいいですか?
明確化 印刷中にヘッダー/フッターを設定することに興味があります。たとえば、メモ帳は、印刷するものにヘッダーとしてファイル名を追加します。
更新 これを行う標準的な方法はないようですが、誰かが私にいくつかの回避策を教えてもらえますか?これまでに投稿された唯一の回答は、ヘッダー/フッターの印刷(プリンターへの送信、画面への表示ではないなど)とは関係ありません。
コメントからコピー:ヘッダー/フッターの印刷に興味があります。たとえば、メモ帳からドキュメントを印刷する場合、ファイル名がヘッダーとして追加されます(または、おそらくそのフッターですが、正確には覚えていません)。
java - ペイントまたはpaintComponentを上書きしたときにグラフィックを元の状態に復元する必要がある
ペイントまたはpaintComponentを上書きするJavaコードのほとんどは、グラフィックオブジェクトの状態を変更した後、グラフィックオブジェクトの古い状態を復元しないことに気付きました。たとえば、setStroke、setRenderingHint .. ..
メソッドから戻る前に、グラフィックスオブジェクトの古い状態を復元するのは良い習慣かどうか疑問に思いました。例えば
これは良い習慣ですか?またはそれは終わりましたか?
java - すべての子コンポーネントのプロパティを設定
以前は Java AWT を使用したことがありませんでしたが、すべての子コンポーネントJFrame
の font プロパティを表示して同じ値に設定するコードを手に入れました。プロパティを1 か所だけに設定したい。これどうやってするの?
.NET/WinForms では、子コントロールは親コントロールから継承するため、Form
インスタンスのフォントを設定してすべてのコントロールに伝播させるだけで十分です。予想外に、これは AWT には当てはまらないようです。
次の小さなコードは、すべてのコンポーネントのフォントを再帰的に設定します。
ただし、次の 4 つの欠点があります。
- 入れ子になったレイアウト パネルを含む大きなフォームでは、実際には非常に非効率的な余分なコード。
- コードは非汎用です。将来、別のプロパティに対して同じことを行う必要がある場合は、メソッドを書き直す必要があります (または、簡潔さを犠牲にしてより一般的なものにリファクタリングする必要があります)。
- 使用法は非宣言的です。つまり、宣言的な方法ではなく、フォーム作成の最後 (すべての子コンポーネントが初期化および追加された後) に呼び出す必要があります。
- うまくいきません。コンポーネントは正しく設定されていますが、すべてがコンポーネントであるとは限りません。たとえば、
TitledBorder
の はJPanel
設定されません。