1

ペイント プログラムを作成していますが、テキスト ツールの作成方法がわかりません。私がやりたいのは、クリックしてドラッグして、テキストボックスをキャンバスに表示することです。問題は、これをキャンバス コンポーネントの上に浮かぶ JTextComponent にしたくないことです。これにより、境界線を移動すると境界がちらつき、マウスがテキストボックスのすぐ隣にあるときにカーソルの一部がテキストボックスの下にあるように見えるという問題が発生します。

私がやろうとしていたのは、JTextArea を作成してから、キャンバス上のテキスト ボックスに対するマウスの位置に基づいて mouseEvents を起動することでした。キャンバス上のものは、コンポーネントに追加していない実際の JTextArea を (.getGraphics() を使用して) ペイントしたものにすぎません。これの問題は、コンポーネントが画面に表示されていないと .getGraphics() を呼び出せないことです。

私は、単純なはずのこのようなもののためだけに JTextComponent コード全体を再作成することを避けようとしています。

この問題の解決策や別のアイデアはありますか?

4

1 に答える 1

0

JTabbedPane を作成できます。ペイント パネル用の 1 つのタブと、textPane 用の別のタブ。そして、いくつかのボタンにアクションリスナーを与えることができます。actionlistener は、paint メソッドのグラフィックスに Graphics.drawString(...); を与える必要があります。文字列は textComponent が与えたものです。ペイント プログラムで文字列を移動するのはより困難ですが、マウスのドラッグを識別する mouseListener を使用できます。これにより、Graphics.drawString(...); の新しい (x,y) ポイントが設定されます。

これが少し役立ったことを願っています。

于 2014-05-11T16:55:49.057 に答える