2013-04-22 2 views
5

Мне нужно создать графический интерфейс с использованием GroupLayout (не других макетов). Графический интерфейс будет выглядеть следующим образом:Создание GUI с помощью GroupLayout в Java

---------------------------- 
| field 1 field 2 field 3 | 

| FFIEEELLLDD4 FIELDDDDDD5 | 

| FIEEEEEEEEEEEEEEELDDDD 6 | 
_____________________________ 

Поле 1 - 3 Принимать 1 длину каждое, поле 4 и 5 взять 1,5 длину каждый, и поле 6 занимает 3 длины. Три группы выравниваются как в начале, так и в конце.

Я имел в виду это http://docs.oracle.com/javase/tutorial/uiswing/layout/group.html.

Для простоты я буду использовать JLabels в качестве держателей мест для полей.

Вот мой код, и мне не повезло с графическим интерфейсом, который я хотел.

public class RecorderGUI extends JFrame { 
    private final JLabel one; 
    private final JLabel two; 
    private final JLabel three; 
    private final JLabel four; 
    private final JLabel five; 
    private final JLabel six; 
public RecorderGUI() { 
    JFrame frame = new JFrame(); 
    JPanel panel = new JPanel(); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    GroupLayout layout = new GroupLayout(panel); 
    panel.setLayout(layout); 

    one = new JLabel("one"); 
    two = new JLabel("two"); 
    three = new JLabel("three"); 
    four = new JLabel("four"); 
    five = new JLabel("five"); 
    six = new JLabel("six"); 
     layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup()) 
       .addComponent(one) 
       .addComponent(two) 
       .addComponent(three) 
      .addGroup(layout.createSequentialGroup()) 
       .addComponent(four) 
       .addComponent(five)) 
      .addComponent(six)); 

     layout.setVerticalGroup(layout.createSequentialGroup() 
      .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
       .addComponent(one) 
       .addComponent(two) 
      .addComponent(three)) 
     .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
      .addComponent(four) 
      .addComponent(five)) 
      .addComponent(six)); 
     frame.add(panel); 
     frame.pack(); 
     frame.setVisible(true); 
    } 
    public static void main(final String[] args) { 
     RecorderGUI GUI = new RecorderGUI(); 
    } 

Код приводит к следующему, который не то, что я хотел: один, два и три объединены вместе; четыре и пять перекрываются.

К сожалению, я хотел бы добавить изображение выходного графического интерфейса, но я не могу приложить фотографии, потому что у меня есть под 10 репутации :(

+0

один, два и три объединяются вместе,. четыре и пять перекрытия, а – newtothissite

+0

а почему ограничение на 'GroupLayout' – Howard

ответ

10

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

layout.setHorizontalGroup(layout 
    .createParallelGroup(GroupLayout.Alignment.LEADING) 
    .addGroup(layout.createSequentialGroup() 
     .addComponent(one, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
     .addComponent(two, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
     .addComponent(three, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
    .addGroup(layout.createSequentialGroup() 
     .addComponent(four, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
     .addComponent(five, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
    .addComponent(six, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)); 

layout.setVerticalGroup(layout.createSequentialGroup() 
    .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
     .addComponent(one).addComponent(two).addComponent(three)) 
    .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
     .addComponent(four).addComponent(five)) 
    .addComponent(six)); 

enter image description here

+0

@Howard [пожалуйста, вы знаете, реальный вопрос в этой теме] (? Http: // s tackoverflow.com/questions/16147957/jtable-adding-one-to-a-jpanel-and-it-not-displaying-itself), пожалуйста, что вызвало то, что PreferredSize ушел (возвращает нулевое измерение) – mKorbel

 Смежные вопросы

  • Нет связанных вопросов^_^