Как вы устанавливаете положение кнопки в сетке? - PullRequest
2 голосов
/ 02 августа 2011

Мой код:

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?

Ответы [ 3 ]

5 голосов
/ 02 августа 2011

Попробуйте добавить пустые компоненты в позиции до 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);
2 голосов
/ 02 августа 2011

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

1 голос
/ 02 августа 2011

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

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

...