2009-03-31 10 views
0

マイプロジェクトはJava Swingです。JPanel上にあるJPanel +イメージ上に部分的に別の図形を追加する方法

私はJPanelを持っています。これには、拡張子.png(JLabels上にあります)が中央にいくつか追加されています。

ここで部分的にJPanel &にその画像上にある行を追加したいと思います。 現在、行を追加しているときに、JPanelがその行を表示しますが、画像のサイズを変更すると、&イメージにドラッグすると、イメージがその行を隠します。

イメージが私の行を隠さないようにするには&はそれをイメージに表示しますか?

+0

どのように線を描くのですか?関連するコードスニペットを提供できますか?または、スクリーンショットですか? –

答えて

2

あなたはおそらく自分で画像を描画し、同じコントロールの上に線を描く方がよいでしょう。 Canvasを拡張するクラスを作成し、paintメソッドで独自のコードを記述して画像をペイントし、その線を描画します。

0

JXLayerを使用して、線を描画するカスタムLayerUIを定義することができます。これらは、引き出す必要のあるコンポーネントの上に表示されます。 これはもう少し進んでおり、サードパーティ(オープンソース)のカスタムコンポーネントを使用することになりますが、後でイメージをレンダリングするために使用するSwingコンポーネントを気にする必要があります。 私はthisの記事があなたが望むものを達成する方法を記述していると思います。

私はこれまで多くの類似の問題をさまざまな方法で解決してきましたが、JXLayerの柔軟性と保守性はありませんでした。

1

別のオプションは、あなたのメインコンテナとしての代わりにJPanelののJLayeredPaneを使用し、非不透明(setOpaque(false)を)置くJPanelの上位層 使用JLayeredPane.setLayer(yourPanel、highNumber)にして何かを使用して、あなたのJLayeredPaneを満たすことですGridBagLayoutや単純なカスタムLayoutManagerのようなものです。

このパネルでカスタムペイントを実装できます。

関連する問題