2009-09-30 16 views
6

.netには、アンカーと呼ばれるコントロールがあり、フォームでコントロールを動的にサイズ変更するために使用されます。コントロールがフォームに固定され、フォームのサイズが変更されると、コントロールはコントロールとアンカー位置の間の距離を維持します。Java Swingでのアンカーリングとドッキングコントロール

私の質問は、ネット上でアンカーと同じ機能を実行するコントロールがあることです。
例として、私はテキストフィールドを選択し、パネル上に配置し、適切にサイズを変更しました。 私はウィンドウ(JFrame)のサイズを変更するか、ウィンドウを最大化すると、以前と同じ距離を維持することができません。 私はnetbeansを使用しており、私は質問に答えるpalleteマネージャのプロパティを見つけられません。 私に例やリンクを教えてください。

答えて

4

のJava Swingはビジュアルコンポーネントのサイズとpostionを管理するためのレイアウトマネージャを使用しています。 これは、このレイアウトマネージャを使用する方法についての公式のJavaのチュートリアルです:

http://java.sun.com/docs/books/tutorial/uiswing/layout/using.html

そして、最も一般的なレイアウトマネージャの簡単な説明

FlowLayoutの(デフォルト)がある:それは左のコンポーネントを配置します右から上に向かって。

BorderLayout:NORTH、SOUTH、WEST、EASTセンターCENTERでコンテナを分割します。位置によって1つのコンポーネントのみ。境界上のコンポーネントが展開され、中央のコンポーネントが空きスペースを使用します

GridLayout:グリッドがいくつの行と列を持つかを示すマネージャを初期化します。各セルのサイズは同じで、左上のセルにコンポーネントを追加します。

GridBagLayout:MOSTのきめ細かいレイアウトマネージャーですが、これで何かできますが、少し複雑です(Javaドキュメントを参照)。

NullLayout(コンテナのレイアウトマネージャを無効にした場合):レイアウトマネージャなしで、コンポーネントはlocationおよびsizeプロパティを使用してコンポーネントに表示します。

もちろん、他のコンテナ内のコンテナは、その親とは異なるレイアウトマネージャを使用できます。レイアウトマネージャーを組み合わせることは学ぶのが難しい芸術です。

1

Netbeansには、Matisse GUIビルダーを使用してGUIを設計するための組み込みサポートがあります。これは、VBのような環境で利用可能なドロップスタイルフォームデザインのドラッグに最も近いものです&

フラッシュデモhereがあります。

(それは、開発チームの誰もがNetbeansのを使用している場合は特に、迅速unmaintainableとなり多くのコードを自動生成しているが個人的に私は、このアプローチの巨大なファンではない。)

0

あなたがしている場合単一のコントロールを取得した後にjava.awt.BorderLayoutを使用し、BorderLayout.CENTERでコントロールを追加することが最良の方法です。

複数のコントロールがある場合は、java.awt.GridBagLayoutを使用する必要があります。

あなたは次のように設定する必要があります。

gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; 
gridBagConstraints.fill = GridBagConstraints.BOTH; 
gridBagConstraints.weightx = 1; 
gridBagConstraints.weighty = 1; 

あなたが再サイズにするコントロールを追加するとき。

それについてのチュートリアルはここにあります:

http://java.sun.com/docs/books/tutorial/uiswing/layout/gridbag.html