3

JFrame の JPanel 内に JComponent を表示できません。

以下は動作しません。

JComponent component = ...
panel.add(component, BorderLayout.CENTER);
frame.add(panel, BorderLayout.CENTER);

frame.add(component, BorderLayout.CENTER);しかし、JFrame[like ] にJComponent を追加すると、コンテンツが表示されます。

何か案は

4

2 に答える 2

5

AJPanelのデフォルト レイアウトは a であるFlowLayoutため、パネルの中心を指定する必要はありません。

単に行う:

panel.add(component);

または、次のようにします。

panel.setLayout(new BorderLayout());
panel.add(component, BorderLayout.CENTER);
于 2010-08-25T14:57:41.527 に答える
2

デフォルトでは、JComponent には優先サイズがありません。

デフォルトでは、JPanel は FlowLayout を使用します。コンポーネントをパネルに追加すると、コンポーネントの推奨サイズ (0) が考慮されるため、コンポーネントは表示されません。

デフォルトでは、JFrame のコンテンツ ペインとして使用されるパネルは BorderLayout を使用します。そのため、フレームのコンテンツ ペインにコンポーネントを追加すると、コンポーネントは自動的にサイズ変更され、フレームで使用可能なスペースを埋めます。

解決策は、コンポーネントに適切なサイズを与えることです。その後、任意のレイアウト マネージャーを使用して任意のパネルで使用できます。

于 2010-08-25T17:46:32.523 に答える