問題タブ [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 - Swing コンポーネントは、内部でどのように作成、配置、再描画、イベントの通知を行うのか...?
Swing コンポーネントのライフサイクルに関する適切なドキュメント (または (表示可能な) 電子ブック) があるかどうか疑問に思っています。
とにかく、「ライフサイクル」は正しい用語ですか?
次のような質問に対する答えを見つけたいと思っています。
- どのように、いつ、どの順序で描画メソッドが呼び出されますか?
- どのイベントがいつ、どのように、誰によって呼び出されますか?
- コンポーネント作成のためのメソッド呼び出しの正確な順序は?
ときどき、アプリの奇妙な動作に遭遇します。次に例を示します。
- ComponentListener のサイズ変更イベントはsetVisible(true) の前に呼び出されます
(ルート ペインのサイズが負になるように!) - 一部のコンポーネントは、手動で JFrame のサイズを変更した後にのみ正しくレイアウトされます
- スーパークラスを JPanel から JLayeredPane に変更すると、クラスが別のコンテナ内で異なってレイアウトされます。
- 他にも不思議なことがいっぱい…
java - ペイントの問題を引き起こすJLabelのsetBorderメソッド
JLabelを拡張するカスタムクラスがあります。そのクラスの特定のインスタンスについて、左側のテキストにスペースを追加したいと思います。このJLabelの背景を設定しているので、間隔が必要です。テキストが色付きの背景の端のすぐ隣にぶつからないようにします。私はかなり釣りをして、これを実装しました(ペイント機能内):
これは、必要な間隔を追加するという点で機能しているように見えますが、アプリケーションの残りの部分全体の再描画を中断しているように見えるという不幸な副作用があります...その特定のコンポーネントのみが再描画されており、アプリケーションの残りの部分。私は最終的にそれをsetBorder呼び出しまで追跡しました...どんな種類の境界線を設定しても、同じ壊れた動作を引き起こすように見えます。アプリケーションには2つの異なるバージョンがあります。1つはJava1.5で実行され、もう1つはJava 1.6で実行されます。Java1.6バージョンは正しく機能しているように見えますが、Java1.5バージョンは機能していません。古いバージョンをJava1.6にアップグレードすることはできません...Java1.5で動作するものが必要です。また、私はこれを試しました(それがどのように見えるかを見るためだけに):
そして、それもまったく同じように塗り直しを壊すように見えます。アプリケーションのソースを調べて、境界線を設定した他の場所(空の境界線を含む)を見つけましたが、JLabelには見つかりませんでした(パネル、ボタンなどのみ)。誰かが前にこのようなものを見ますか?それを修正する方法を知っていますか?または、バグを回避するために必要な間隔を取得する別の方法はありますか?ありがとう。
java - java.awt.Frame.setBackground()がOSXで機能しない
OS XのJavaアプレットでいくつかのUIレンダリングのバグを解決しようとしていますが、理解できないバグを見つけました。
java.awt.Frameを拡張するために開いたすべてのウィンドウは、setBackground()呼び出しを無視し、代わりにOS Xのデフォルト(OSのバージョンに応じてブラッシュドメタルまたはグレーのグラデーション)を使用しているようです。ただし、Dialogを拡張するために開いたものはすべて正常に機能します。
paint()メソッドをオーバーライドして、そこに背景色を描画してみました。ただし、これは部分的にしか機能しません。背景は場所によっては正しい色になりますが、フレームのすべての子コンポーネントは、私が設定したものではなく、OS Xの背景で描画されるため、さらに見栄えが悪くなります。それらの同じコンポーネントタイプ(パネル、チェックボックスなど)は、ダイアログ拡張ウィンドウのいくつかで使用され、そこで正常に機能するので、フレームに何かが混乱している必要があると思います。
OS Xで動作するフレームの背景色を設定する方法はありますか?他の誰かがこれを見たことがありますか?
Microsoft JVMをサポートする必要があるため、Java 1.1仕様に対するコーディングに固執していることに注意してください(始めないでください...)。
java - Javaの画像からラスターを取得するにはどうすればよいですか?
gif画像をURLからjava.util.image.Rasterにロードして、操作できるようにしようとしています。私が見つけた画像をロードおよび解凍するための唯一のメソッドは、java.awt.Imageを返すToolkit.getImageでした。作業できるように、それをラスターに変換する必要があります。提案?
java - Swing: ソフトな境界線を持つ非長方形のウィンドウを作成する方法は?
Javaでソフトボーダーのある非長方形ウィンドウを作成するにはどうすればよいですか?
ソフト ボーダー (ソフト クリッピングとも呼ばれます) は、エイリアシング アーティファクトのないボーダーです。
Web をよく検索したところ、半透明または非長方形のウィンドウに関する投稿がいくつか見つかりました。
トピック「ソフトボーダー」は紛らわしいです。私が見つけた情報は、別のJavaコンポーネント内にあるコンポーネントにソフトボーダーを適用することを扱っているようです。
しかし、デスクトップ上に配置されたカスタム形状の JWindow にソフト ボーダーを適用できますか、または適用できませんか?
主に次の投稿を参照しています
。
ソフト クリッピングについては、記事をhttp://weblogs.java.net/blog/campbell/archive/2006/07/java_2d_tricker.htmlに転送します
が、ここでは、既存の Graphics2D オブジェクトのソフト クリッピングについて説明します。
java - ダイアログがモーダルの場合、Macのjava.awt.Dialogでラジオボタンが正しくレンダリングされないのはなぜですか?
MacでJavaアプリケーションをテストしている最中ですが、非常に奇妙な問題が発生しました。非モーダルダイアログは正常に機能しますが、モーダルダイアログに表示されるチェックボックスは正しくレンダリングされません。
たとえば、2つのラジオボタンがあるウィンドウがあるとします。ダイアログが開くと、最初のダイアログが選択されます。2番目のボタンをクリックすると、突然両方が選択されているように見えます。ダイアログ内の他の場所をクリックすると、レンダリングが修正され、選択したボタンのみが表示されます。
次のコードは私のためにこれを再現します:
私がこれをそのように呼ぶならば:
java -cp MacTest.jar mactest.Main false
ダイアログはモーダルではなく、すべてが正常に機能します。ただし、モーダルであると言った場合:
java -cp MacTest.jar mactest.Main true
その後、レンダリングの問題が発生します。
問題を解決するために考えられるすべてのトリック(無効化、doLayout、フォーカスの要求、ボタンが選択されたときにすべてのボタンの状態を明示的に設定するなど)を試しましたが、これまでのところ、私が得たのは唯一のことです。それでうまくいくのは、ダイアログをモーダルにしないことです。残念ながら、それは私のアプリケーションのオプションではありません。
重要な場合、これはJava1.5.0_16を実行しているOSX10.5を実行しているMacBook上にあります。
java - How to recognize key press events in Java
i m using the keyboard event on Robot Objects....
but each time i have to specify the keys individually....like
is there any technique to get/recognize eachand every keys....not by specifying them individually....? i m recieving the keycode from server side in keyCode variable.... so can i use this variable directly inplace of "KeyEvent.VK_D" like r.keyPress(keyCode);
java - AWTハードウェアカーソルを使用して3つ以上の色を使用するにはどうすればよいですか?
作成しているコンピューターゲームにハードウェアカーソルを使用したいのですが、AWTを使用すると、使用する画像を指定できますが、2色と透明度しか受け入れられないため、かなり制限があります。
現在のほとんどのシステムでより大きな色深度を使用できることはかなり確信していますが、AWTでそれを実現する方法はありますか?他の方法はどうですか?
java - LineBreakMeasurerでの\nの処理
LineBreakMeasurerを使用して複数行のテキストを描画する方法については数千の記事がありますが、\ n(テキストの特定の位置に新しい行を強制する場合だけでなく、右-または左-マージンが終了します)。
秘密はBreakIteratorにあるようですが、\nを処理する実装が見つかりませんでした。