要素を垂直方向ではなく水平方向に追加するグリッドレイアウトに要素を追加する方法はありますか?基本的に、次の行から始める前に、行全体を要素で埋めたいと思います。
私の質問を明確にしたことを願っています。
要素を垂直方向ではなく水平方向に追加するグリッドレイアウトに要素を追加する方法はありますか?基本的に、次の行から始める前に、行全体を要素で埋めたいと思います。
私の質問を明確にしたことを願っています。
これが GridLayoutの仕組みです。
GridBagLayoutとGridBagConstraintsをお勧めします
これはGridLayoutによく似ていますが、GridBagConstraintsを使用すると、コンポーネントのx座標とy座標を指定でき、列と行のスパンを実行できます。
次のようになります。
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
GridBagLayout layout = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
JPanel panel = new JPanel();
JLabel label = new JLabel("foo");
panel.setLayout(layout);
c.gridx = 0;
c.gridy = 0;
panel.add(label, c);
GridLayoutは、その名前が示すように、コンストラクターで指定した列と行の数に従ってコンポーネントをレイアウトし、指定した数のコンポーネントを追加するとすぐに次の行に移動します。
あなたの質問から、FlowLayoutはあなたが探しているものに沿っているようです。
編集:理由はわかりませんが、行数を0に指定すると(たとえばnew GridLayout(0, 9)
、正しく機能しているようです)。
次の列に移動する前に、列のすべての行を埋めたいと言っていると思います。その場合は、カスタムレイアウトマネージャーを使用します
実際には、GroupLayoutを使用する必要があります 。これは(jdk 1.6以降)新しく、非常に優れています。それはあなたにレイアウトのトンの柔軟性を与えます。