Как вы устанавливаете положение кнопки в макете сетки?

Мой код:

public class Form {
    public static void main(String[] args) {
        Form form = new Form();
        form.go();
    }

    public void go() {
        JFrame form = new JFrame();
        GridLayout layout = new GridLayout(2,7);
        Label nameLabel = new Label("Name");
        form.setLayout(layout);
        JTextField nameBox = new JTextField();
        form.getContentPane().add(nameLabel);
        form.getContentPane().add(nameBox);
        form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        form.setSize(500,500);
        form.setVisible(true);
    }
}

Теперь, как я могу установить эту позицию JTextField так, чтобы она была 2,7, а не 1,2?


person AHil Rajwani    schedule 02.08.2011    source источник
comment
С ремаркировкой Java и Swing.   -  person rcv    schedule 02.08.2011


Ответы (3)


Попробуйте добавить пустые компоненты в позиции перед 2,7, например:

form.add(nameLabel);
form.add(new JPanel());
form.add(new JPanel());
form.add(new JPanel());
form.add(new JPanel());
form.add(new JPanel());
form.add(new JPanel());
form.add(new JPanel());
form.add(new JPanel());
form.add(new JPanel());
form.add(new JPanel());
form.add(new JPanel());
form.add(new JPanel());
form.add(nameBox);
person Eng.Fouad    schedule 02.08.2011
comment
это базовые вещи +1 для невидимых JComponents - person mKorbel; 02.08.2011

кажется, что вам лучше использовать макет GridBag и использовать ограничения сетки gridx для позиционирования ваших компонентов... Вот учебник из java: http://download.oracle.com/javase/tutorial/uiswing/layout/gridbag.html Насколько я знаю, вы не можете напрямую размещать компоненты, где хотите, используя сетку layout( @Paŭlo Ebermann упомянул то же самое)

person buch11    schedule 02.08.2011

GridLayout всегда будет сортировать компоненты контейнера в том порядке, в котором они находятся в контейнере. Вы не можете поместить компонент в определенное место, кроме как вставив фиктивные компоненты для всех предыдущих мест.

Возможно, вы захотите попробовать другие менеджеры компоновки. GridBagLayout может это сделать, но использовать его гораздо сложнее.

person Paŭlo Ebermann    schedule 02.08.2011