0

Gridlayout はすべてを同じサイズにするため、Borderlayout で要素を並べ替えようとします。

私が見ているのはこれです: 私が見るもの 手動でサイズを変更している間、次のことができます 私が見たいもの

ここに私のコードの一部があります

public InputPanel() {

    tfield = new TextField("Search your terms here!");
    add(tfield, BorderLayout.PAGE_START);

    searchButton = new JButton("Search");
    searchButton.addActionListener(this);
    add(searchButton, BorderLayout.LINE_START);

    clearButton = new JButton("Clear Text");
    clearButton.addActionListener(this);
    add(clearButton, BorderLayout.LINE_END);

    resultsArea = new TextArea();
    add(resultsArea, BorderLayout.PAGE_END);
}

アレンジには役立たないようです。FlowLayoutを使用したのと同じです。

どうすれば適切にフォーマットできますか?

4

2 に答える 2

1

BorderLayout の場合、NORTH、SOUTH、EAST、WEST、および CENTER を使用してコンポーネントを配置する必要があります。上記のレイアウトを実現するには、FLOWLAYOUT を持つ 1 つのパネルを作成する必要があります。ここに、テキスト フィールド、検索ボタン、クリア ボタンを追加します。このパネルは、BorderLayout.NORTH 内に配置されます。この後、JTextArea を BorderLayout.NORTH 内に配置します。

public InputPanel() {

    JPanel topPanel = new JPanel(); // Create a new panel
    topPanel.setLayout(FlowLayout()); //Left to right alignment is default for FlowLayout

    //Add your textfield and buttons to the panel with flowlayout
    tfield = new TextField("Search your terms here!");  
    topPanel.add(tfield);

    searchButton = new JButton("Search");
    searchButton.addActionListener(this);
    topPanel.add(searchButton);

    clearButton = new JButton("Clear Text");
    clearButton.addActionListener(this);
    topPanel.add(clearButton);

    add(topPanel, BorderLayout.NORTH); // Add the panel containing the buttons and textfield in the north

    resultsArea = new TextArea();
    add(resultsArea, BorderLayout.CENTER); //Add the textarea in the Center

}

これにより、以下の外観が得られます。 ここに画像の説明を入力

于 2013-05-08T12:01:55.063 に答える
1

GridBagLayout真に柔軟なレイアウト マネージャーの第 1 の選択肢である を見逃しているようです。また、多くのことBorderLayoutを達成できますが、多くのレベルのネストが必要であり、それを構築するコードは非常に扱いにくいものです。

于 2013-05-08T11:05:15.990 に答える