2015-06-19 6 views
-1
public void init_numSolvers() { 
    for (x = 0; x < 9; x++) { 
     n++; 
     num[x] = new Button("" + n); 
     add(num[x]); 
     num[x].setBounds(num_x, num_y, 40, 40); 
     setLayout(null); 
     num_x += 40; 
    } 

почему SetBounds() функция не работает без setLayout (нуль) я просто хочу, чтобы понять основную цель setLayout функции (нуль)SetLayout Функция Основная цель

ответ

4

Вы хотите читать учебники и API-интерфейс, как они четко оговаривать, какие SetBounds и setLayout делает, но вкратце:

  • метод setLayout(...) позволяет установить расположение контейнера, часто в JPanel, чтобы сказать FlowLayout, BorderLayout, GridLayout, нулевой макет, или любой желаемый макет. Менеджер компоновки помогает выложить компоненты, удерживаемые этим контейнером.
  • Метод setBounds(...) используется для установки местоположения и размера одного компонента и полезен только в том случае, если компоновка null используется контейнером, который содержит этот компонент.
  • Когда вы устанавливаете макет в значение null, вы указываете контейнеру, что он не использует макет вообще, и поэтому вы, тем самым, полностью отвечаете за программирование всех размеров и положений компонентов, которые добавлены в этот контейнер.
  • Сказав это, вы должны стараться избегать использования макетов null и setBounds(...). В то время как для новичка Swing-программиста это может показаться самым простым способом создания сложных макетов, при их использовании вы создаете графический интерфейс, который может выглядеть хорошо только на одной платформе. Что еще более важно, они создают GUI, которые практически невозможно поддерживать и обновлять, не вызывая тонких ошибок. Просто не используйте их, если это вообще возможно.
  • Просьба ознакомиться с этим сообщением official layout manager tutorials.

Обратите внимание, что ваш код повторно устанавливает расположение контейнера в нуль в пределах цикла. Я понятия не имею, почему он делает это повторно, так как вам нужно только и нужно установить макет контейнера один раз.

+0

Спасибо u .... я ценю помощь ур: D –

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