0

SWINGでGUIをコーディングしています:

    JLabel tLabel1 = new JLabel("Name: ");
    JFormattedTextField tTextField1 = new JFormattedTextField();
    textBoxes.add(tTextField1);
    JLabel tLabel2 = new JLabel("Maximaler Preis: ");
    JFormattedTextField tTextField2 = new JFormattedTextField();
    textBoxes.add(tTextField2);

        GridBagLayout tLayout = new GridBagLayout();
        mainFrame.getContentPane().setLayout(tLayout);
//      tLayout).setAutoCreateGaps(true);
//      tLayout.setAutoCreateContainerGaps(true);

        GridBagConstraints gbc = new GridBagConstraints();
        gbc.gridx = 0;
        gbc.gridy = 0;
        gbc.gridwidth = GridBagConstraints.REMAINDER;
        gbc.anchor = GridBagConstraints.WEST;

        mainFrame.add(new JLabel("Geben sie bitte die Kriterien für die Suche an:"), gbc);

        gbc.gridwidth = 1;
        gbc.gridy++;
        mainFrame.add(tLabel1, gbc);
        gbc.gridy++;
        mainFrame.add(tLabel2, gbc);
        gbc.gridy++;
        mainFrame.add(tLabel3, gbc);
        gbc.gridy++;
        mainFrame.add(tLabel4, gbc);

        gbc.gridx++;
        gbc.gridy = 1;
        mainFrame.add(tTextField1, gbc);
        gbc.gridy++;
        mainFrame.add(tTextField2, gbc);
        gbc.gridy++;
        mainFrame.add(tTextField3, gbc);    
        gbc.gridy++;
        mainFrame.add(tCombo, gbc);
        gbc.gridy++;
        mainFrame.add(searchButton, gbc);

        gbc.gridy++;
        gbc.gridx = 0;
        gbc.gridwidth = GridBagConstraints.REMAINDER;
        gbc.fill = GridBagConstraints.HORIZONTAL;

        mainFrame.add(tTable, gbc); 
        mainFrame.setSize(800, 500);
        mainFrame.pack();

私のテキストフィールドは次のようになります。

| |

GridBagLayout で幅を与える方法は?

4

3 に答える 3

3

制約でそれらに重みを割り当てる必要があります。重みによって、残りのスペースがどのように配分されるかが決まります。コンポーネントに重みを設定しない場合、すべてのコンポーネントが最小サイズになり、スペアスペースはレイアウトの外側に完全に移動します。

于 2012-10-09T08:41:45.107 に答える