2011-07-15 5 views
2

私はオブジェクトに柔軟なサイズを与えるjavax.swingまたはjava.awtのクラスを探しています。このクラスの名前をMyClassとします。 MyClassMyPanelに追加すると、オブジェクト内にオブジェクトが配置されます。具体的には、矩形を描画すると、MyClassのサイズは矩形のサイズになります。円を描くとMyClass'sは円のサイズになります。柔軟なサイズのSwingまたはAWTライブラリのクラス

これまでのところ、いくつかのクラスを見てきましたが、長方形の形状:Container, Canvas, JLayeredPaneなど

何か提案がありますか?

答えて

3

持つすべての可能なスタートを忘れてしまったことができ、Shapeインタフェースを実装するすべてのクラスが良いと思います候補者。このexampleに示すように、createTransformedShape()メソッドをAffineTransformに変換すると変換できます。

+0

これは素晴らしいですね。私はこの事に行+文字列を入れるつもりです。それはもっと簡単なはずですか? AffineTransformと行列代数が必要だと思いますか? – Emir

+0

は、一般的には最も良いとseftsoldのGUIと2D/3D絵画のためにあなたはトップレベルのアーティストの感覚を構築しなければなりませんが、senceは他のもののように素敵な、素敵な、そして最高の考えをします:-)、そのため、両方+1 – mKorbel

+0

'AffineTransform'は大部分の代数を隠します。しかし、 "回転と平行移動は可換ではありません!" - [幾何学変換](http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/geometry/geo-tran.html) – trashgod

2

単純に別のJPanelを使用することもできますが、そのキーはコンテナ(おそらく別のJPanel)が使用するレイアウトマネージャとコンテナにどのように配置されるのかという制約があります。詳細については、より使いやすいさまざまなレイアウトマネージャーの使用方法に関するチュートリアルをお読みください:Laying Out Components Within a Container

今度は、図形を描画するという2番目の問題については、それを解決するための詳細情報を提供する必要があります。カーブは無限に許されていますか?または、四角形と楕円形を使用できますか?

+0

単に、私のオブジェクトは行を構成します(その制約はMouseEventsで動的に変更できます)と文字列です。 – Emir

1

によっては(天はこのContainerが!Swing tutorialから失われた、または私は盲目だ?JFrame/JDialog非装飾され、完全に半透明を作成することによって、私のお気に入りは、デフォルトでは非飾られているだけでJWindowだろうとthisチュートリアル私ができる画像を以下の?)

これを完全に半透明にするには、JPanel以上の親を追加する必要があります。JLabelです。そこには可能sharpes

のいずれかを追加する必要があります私は、あなたはかなりのAWT Component秒の使用は、適切なレイアウトを考える"J" == Swing JComponents