将java组件放在gridbaglayout上方并排放在同一布局中

时间:2015-08-05 19:46:27

标签: java jtextfield gridbaglayout jslider

我有一个JSliders和JTextfields数组,我想放置一个JTextfield然后放置一个JSlider,向左移动并再次放置下一个JTextfield,Jslider。

        setLayout(new GridBagLayout());

        JTextField[] textField = new JTextField[NUM_CHANNELS + 1];

        JSlider[] sliders = makeSliders(NUM_CHANNELS + 1);

        for (int i = 0; i < NUM_CHANNELS + 1; i++) {

            textField[i] = new JTextField();

            textField[i].setText("Channel " + (i + 1));

            add(textField[i]);

            add(sliders[i]);
        }

通过上面的内容,我得到JTextField - JSlider ......连续。

1 个答案:

答案 0 :(得分:1)

添加组件时需要添加GridBagConstraints

   GridBagConstraints gbc = new GridBagConstraints();
   for (int i = 0; i < NUM_CHANNELS + 1; i++) {
        gbc.gridy = 0;
        textField[i] = new JTextField();

        textField[i].setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));

        textField[i].setText("Channel " + (i + 1));

        add(textField[i], gbc);
        gbc.gridy = 1;
        add(sliders[i], gbc);
        gbc.gridx++;
    }