Вопрос

Я делаю школьный проект, и мне нужна помощь с Версткой, потому что там делается кое-что прикольное.

Мне нужна помощь только с южной панелью.Южная панель организована примерно так:

           JRadioButton JLabel1 JLabel2
           JRadioButton JLabel1 JLabel2
    JLabel3--------JTextField----------JButton

Я попробовал следующее:

  1. Установите южную JPanel в виде сетки с 3 рядами
  2. Другая JPanel также с gridlayout с 3 строками, добавленными к первой строке gridlayout.
  3. Повторите №2 со вторым и третьим рядами.Вторая строка состоит из 3 строк по 3 столбца.
  4. Добавлены компоненты в соответствующие строки / столбцы.

Форматируется не так, как мне нужно.Я пробовал некоторые другие методы, которые не могу вспомнить.Есть какие-нибудь предложения?Спасибо.Вот изображение того, как должна выглядеть южная панель: http://www.freeimagehosting.net/image.php?d14a73db5e.jpg

Он начинается с "Даты начала ..."

Это было полезно?

Решение

Создайте новый JPanel и использовать Расположение группы за это.

Вот так http://img163.imageshack.us/img163/1403/capturadepantalla201001bo.png

Использование компоновки группы позволяет указать компоненты, которые будут помещены в горизонтальную группу, и компоненты, которые будут помещены в вертикальную группу.

c1, c2, c3
c4, c5, c6
panel[ c7, c8, c9 ]

Вот как я оформляю изображение выше:

    // Layout Horizontal components 
    layout.setHorizontalGroup(
        layout.createSequentialGroup()
        .addGroup( 
            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addComponent( c1 )
            .addComponent( c4 )
        ).addGroup(
            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                .addComponent( c2 )
                .addComponent( c5)
        ).addGroup(
            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                .addComponent( c3 )
                .addComponent( c6 )
        )

    );

    // Layout vertical components 
    layout.setVerticalGroup(
        layout.createSequentialGroup()
        .addGroup( 
             layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
             .addComponent( c1 )
             .addComponent( c2 )
             .addComponent( c3 )
         ).addGroup(
             layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                 .addComponent( c4 )
                 .addComponent( c5 )
                 .addComponent( c6 ) 
        )
    );

    southPanel.add( panel ); // the start-end dates
    southPanel.add( bookIt, BorderLayout.SOUTH ); // the enter your name... 

Дайте ему попробовать.

Другие советы

Что бы я сделал для южной JPanel, так это сделал ее сеткой размером 1x3, затем добавил три компонента первой строки в горизонтальное поле и добавил его в сетку, затем три компонента второй строки в другое горизонтальное поле и добавил его в сетку, затем три компонента третьей строки в сетку размером 3x1 и добавил ее в сетку.Затем вы можете точно настроить желаемый внешний вид первых двух линий, добавив различные компоненты клея и распорки.

Я создаю большинство своих макетов, помещая jpanels или коробки внутрь других с другими макетами.Это дает вам довольно хороший контроль над тем, что вы хотите, и позволяет создавать это по частям за раз.

Похоже, вам бы хотелось иметь сеточное описание с 3 столбцы, а не 3 строки для нижней панели есть.

На изображении по ссылке, которую вы включили, текстовое поле шире, чем JLabel или кнопка.Возможно, вы захотите попробовать Расположение сетки вместо этого.

Недавно я наткнулся на MigLayout, я попробую использовать его в моем следующем университетском проекте, и я бы посоветовал вам попробовать, также это выглядит действительно круто и просто.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top