2016-10-03 23 views
-1

JComponentにあるテキストを回転させたい場合は、paintComponentの方法でペイントされたボーダーが含まれているJComponentの境界線を回転させたくありません。JLabelのテキストを回転させずに回転する

私はすでにgraphics2Drotate関数を使用していますが、コンポーネントの境界線も同様に回転します。これは、コンポーネントが四角形のときに失敗します。

テキストのみを回転するように私にお勧めします。 これは、現在、私のJComponentです:

enter image description here

そして、何が欲しい:

enter image description here

実際にそれが重複していません。私はすでに以下のコードを使用しています:

Graphics2D g2 = (Graphics2D) g; 
       g2.rotate(Math.PI/4, bi.getWidth()/2, bi.getHeight()/2); 

しかし、それはまた境界を回転させる、私はそれを望んでいません。

与えられたすべてのソリューションが機能していない場合は、境界も回転します。私は境界線を回転させたくない、テキストのみを回転させたい。 これは、私はいくつかの角度で回転させた後に得るものです: enter image description here

+0

コーディングではなく、写真を簡単に回転してコード内で使用することができます。 –

+0

@Mohsen_Fatemi、実際はテキストです。写真ではありません。白い枠線を持つJComponentです(別のテキストを描画しています)。 –

+0

こんにちは@kevto、実際に私はすでにその例を参照しましたが、私が必要とするものではありません。 JComponentの特定の部分だけを回転させることができます。 –

答えて

-1

Graphicsオブジェクトは状態をたくさん持っていることを覚えておいてください。これには現在の変換が含まれます。現在のコードは状態を変更し、元の状態に復元しません。

画像を描画した後、回転を元に戻す必要があります。これは、もう一方の方向に回転するか、回転したコンテンツを描画するための新しいグラフィックスオブジェクト(g2.create())を作成することによって実行できます。後者の場合は、作成した一時的なグラフィックスオブジェクトをdispose()にしてください。

+0

Downvoter、なぜかコメントする? – jackrabbit