0

タブ内にページを作成するために、以下のコードがあります。ボックスレイアウト全体の1行に各レイアウトを配置したいのですが、要素を元のサイズのままにし、ウィンドウ全体の幅に合わせて拡張しないようにします。誰かが私が変更する必要があるコードの行を知っていますか、またはこれを行うための最良の方法は何ですか?!添付の画像は、現時点でどのように見えるかを示しています

ここに画像の説明を入力してください

public void createPage4() {
    panel4 = new JPanel();
    panel4.setLayout(new BoxLayout(panel4, BoxLayout.Y_AXIS));
    navigatePanel = new JPanel();
    navigatePanel.setLayout(new BoxLayout(navigatePanel, BoxLayout.X_AXIS));
    previousButton.setText("Previous");
    previousButton.setEnabled(false);
    navigatePanel.add(previousButton);
    navigatePanel.add(Box.createHorizontalStrut(10));
    indexTextField.setHorizontalAlignment(JTextField.CENTER);
    navigatePanel.add(indexTextField);
    navigatePanel.add(Box.createHorizontalStrut(10));
    ofLabel.setText("of");
    navigatePanel.add(ofLabel);
    navigatePanel.add(Box.createHorizontalStrut(10));
    maxTextField.setHorizontalAlignment(JTextField.CENTER);
    maxTextField.setEditable(false);
    navigatePanel.add(maxTextField);
    navigatePanel.add(Box.createHorizontalStrut(10));
    nextButton.setText("Next");
    nextButton.setEnabled(false);
    navigatePanel.add(nextButton);
    panel4.add(navigatePanel);
    displayPanel = new JPanel();
    displayPanel.setLayout(new GridLayout(5, 2, 4, 4));
    firstNameLabel.setText("First Name:");
    displayPanel.add(firstNameLabel);
    displayPanel.add(firstNameTextField);
    lastNameLabel.setText("Last Name:");
    displayPanel.add(lastNameLabel);
    displayPanel.add(lastNameTextField);
    panel4.add(displayPanel);
}

画像

画像

4

2 に答える 2

2

最も簡単な方法は、panel4を使用する他のパネルに を追加してから、そのパネルをコンテナにGridBagLayout追加することです。次に、中央に配置され、サイズ変更時に何も伸びません。

JPanel centeredPanel = new JPanel(new GridBagLayout());
centeredPanel.add(panel4);    // add this panel to the container

次のように、指定された列数でテキストフィールドを構築する必要もあります。

indexTextField = new JTextField(20);
于 2012-10-12T11:23:21.737 に答える
2
  • Min, Max and PreferredSizeから来たBoxLayoutの受け入れJComponents

各レイアウトをボックス レイアウト全体の 1 行に配置したいが、要素を元のサイズのままにして、ウィンドウ全体の幅を埋めるために拡張しないようにしたい

于 2012-10-12T11:13:55.103 に答える