2011-01-27 3 views
0

Это код, который я имею в виду: http://pastie.org/1501054 Когда вы запускаете это, по какой-то причине две панели перекрываются. Почему это так? Как я могу это исправить?Два JPanels перекрываются?

ActionListener, предоставленный в качестве аргумента, не имеет отношения к этой части программы.

Кроме того, где я могу найти хорошее руководство по качанию, которое использует Eclipse?

+3

Опубликовать код в форуме. Включите метод main(), чтобы мы могли выполнить код. – camickr

+0

Является ли предупреждающий знак над надписями и текстовыми полями? –

ответ

0

Когда вы говорите, что хотите хороший учебник по качанию для eclipse, вам нужен GUI-конструктор или учебник по Swing? Swing - это все макеты. Как только вы получите это, это кусок пирога. Просто начните с раскладки потока. Если вы хотите создать графический пользовательский интерфейс, используйте Netbeans. Это невероятно!

Что касается перекрытия, это не перекрытие, а переписывание. Вы можете иметь только одну панель в BorderLayout.CENTER, расположение по умолчанию. Если вы хотите, чтобы они бок о бок, сделайте getContentPane().setLayout(new FlowLayout()); или просто add(panel, BorderLayout.SOUTH)

+0

Я хочу их один за другим. –

0

Хотя я не уверен, что вы хотите, чтобы конечный результат, чтобы выглядеть, вот некоторые из моих предложений.

В фрагменте, где вы добавляете предупреждающую панель фрейм

warningPanel.add(warningLabel); 
contentPane.add(warningPanel); 
pack(); 

ContentPane будет контейнером, возвращаемый JFrame.getContentPane()

JFrames по умолчанию использовать BorderLayout и так,

contentPane.add(<someComponent>)

идентичен

contentPane.add(<someComponent>, BorderLayout.CENTER)

также добавить mainPanel таким же образом, и вы не можете иметь две компоненты с теми же ограничениями, поэтому вместо того, чтобы установить warningPanel в BorderLayout.NORTH

contentPane.add(warningPanel, BorderLayout.NORTH)

А также удалить вызов to pack() в этом фрагменте кода, поскольку вы вызываете его позже в своем коде.

Надеюсь, это поможет.


PS

Что касается GUI здания в Eclipse, это предыдущий вопрос о Eclipse GUI Builder plugins возможно использования. Я не могу говорить за учебники по использованию Swing в Eclipse, но быстрый поиск в Google выкапывает this tutorial using the Eclipse Visual Editor project

0

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

Что касается учебников в Eclipse. Я бы предложил использовать Windows Builder pro в Eclipse для создания графического интерфейса Java. Это отличный продукт (бесплатный) и очень хорошая документация на сайте.

0

Да я вижу предупреждающий ярлык над притиркой первого ряда

Это потому, что вы не определили макет для вашего ContentPane. Вот как это исправить

contentPane.setLayout(new GridLayout(2,1)); 

добавить эту строку под

Container contentPane = getContentPane(); 

, и я думаю, вы должны изменить свое предупреждение панель GridLayout 1 и 1 не 0 и 1, потому что вы еще 1 строку и 1 столбец

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