JTextArea のように見え、JTextArea のように動作し、JTextArea のように応答し、JTextArea のように話し、JTextArea のように動きますが、JTextArea ではない JTextArea を作成したいと考えています。
簡単に言うと、100% JTextArea に基づいたカスタムの swing コンポーネントを作成したいと思います。それができれば、JTextArea のさまざまなハードコーディングされたプロパティを変更して、独自のカスタマイズされた JTextArea を作成できるようになります。私が必要とするように設計された定義済みのスイング コンポーネントはありませんが、JTextArea が最も近いので、それを選択しました。
JTextArea の行間の間隔を変更したいと思います。いいえ、JtextPane を使用したくありません。試してみましたが、私のプログラムでは機能しません。位置を異なる方法で計算し、見た目も異なります。JtextArea 境界線を適用すると、さらに混乱します。
私は JTextArea を拡張しようとしているのではなく、カスタムの swing コンポーネントのように、JTextAreas メソッドを介して構成できない変更されたハードコードされたプロパティを使用して、カスタム JTextArea を作成しようとしています。
しかし、私はそれを行う方法がわかりません。私はインターネットでそれを調べてきましたが、stracth から独自のコンポーネントを構築するための広範なガイドしかありません...
それを理解するには多くの時間がかかり、私の問題を実際に解決することはできません.
私がしなければならないことは、JTextArea を構築するすべてを含むクラス (または複数のクラス) を作成することだけです。JTextComponent レベルから開始し、JTextArea の作成に使用される下位レベルのクラスをすべてコピーします。また、私は Nibus のルック アンド フィールを使用していることにも注意したいと思います。その LAF の下でカスタム JTextArea が適切に機能するためには、いくつかのクラスを含める必要があると思います。
私はスイングのソースコードを調べましたが、すべてが詰まっています。Swing のコア構造とメカニズムに関する知識がないため、JTextArea の作成にどのクラスまたはそのパーツが使用されているかを理解することは、時間のかかる悪夢です。
そのため、知識のある人に、少なくとも JTextArea を複製するために必要なクラスをリストしてもらい、それらを作成する方法を見つけてもらいます。
なぜなら、私がスイングコアの仕組みについて学び始めると、すべてを理解するまでに数日から数週間かかるからです。に注意してください。
ここでショートカットしようと思います。スイングを完全に理解したいわけではありません。これを機能させたいだけです。デフォルトの間隔は 1 ピクセル低すぎます。私がやりたいのは、そのピクセルだけ高くすることだけです。ペインターがコンポーネントを画面にペイントする方法を知りたくありません。どこから呼び出され、それ自体が何と呼ばれているかを知りたいだけです...
時間を割いてくれた人に感謝します。