2014-11-12 4 views
0

У меня проблема с качелями. У меня есть приложение с двумя вкладками - Driver and Vehicle. На вкладке драйвера все выглядит хорошо. У меня есть 4 ярлыка, 4 текстовые поля и 5 кнопок - макет, кажется, хорош, однако, когда я нажимаю на вкладку с моим автомобилем, у меня также есть 4 метки, 4 текстовые поля и 5 кнопок, но макет полностью испорчен. Вот код (все это находится в конструкторе моего класса)Java Swing layout и вкладки

 this.add(tabs); 
    tabs.add("Drivers", driverTabPanel); 
    tabs.add("Vehicles", vehicleTabPanel); 

    //DRIVERS TAB 

    driverTabPanel.setLayout(new GridLayout(3, 1)); 
    driverTabPanel.add(driverTopPanel); 
    driverTabPanel.add(driverDownPanel); 
    driverTabPanel.add(driverTablePanel); 

    //driver top panel 

    driverTopPanel.setLayout(new GridLayout(4, 2)); 
    driverTopPanel.add(driverFirstNameLabel); 
    driverTopPanel.add(fieldFirstName); 
    driverTopPanel.add(driverLastNameLabel); 
    driverTopPanel.add(fieldLastName); 
    driverTopPanel.add(driverAgeLabel); 
    driverTopPanel.add(fieldAge); 
    driverTopPanel.add(driverExperienceLabel); 
    driverTopPanel.add(fieldExperience); 

    //driver down panel 

    driverDownPanel.add(driverAddButton); 
    driverDownPanel.add(driverShowAllButton); 
    driverDownPanel.add(driverSearchButton); 
    driverDownPanel.add(driverEditButton); 
    driverDownPanel.add(driverDeleteButton); 


    //VEHICLE TAB 

    vehicleTabPanel.setLayout(new GridLayout(3, 1)); 
    vehicleTabPanel.add(vehicleTopPanel); 
    vehicleTabPanel.add(vehicleDownPanel); 
    vehicleTabPanel.add(vehicleTablePanel); 

    //vehicle top panel 

    vehicleTopPanel.setLayout(new GridLayout(4, 2)); 
    vehicleTopPanel.add(vehicleBrandLabel); 
    vehicleTopPanel.add(fieldBrand); 
    vehicleTopPanel.add(vehicleModelLabel); 
    vehicleTabPanel.add(fieldModel); 
    vehicleTabPanel.add(vehicleProductionYear); 
    vehicleTabPanel.add(fieldProductionYear); 
    vehicleTabPanel.add(vehicleCapacity); 
    vehicleTabPanel.add(fieldCapacity); 

    //vehicle down panel 

    vehicleDownPanel.add(vehicleAddButton); 
    vehicleDownPanel.add(vehicleShowAllButton); 
    vehicleDownPanel.add(vehicleSearchButton); 
    vehicleDownPanel.add(vehicleEditButton); 
    vehicleDownPanel.add(vehicleDeleteButton); 

Это является частью коды ... у вас есть какие-либо идеи, почему это происходит? Все, кажется, то же самое для меня, и все же, две вкладки имеют разные макеты ...

+0

Возможно, вы предоставите скриншот проблемы? – fxm

ответ

2

На полпути через этот блок

vehicleTopPanel.setLayout(new GridLayout(4, 2)); 
vehicleTopPanel.add(vehicleBrandLabel); 
vehicleTopPanel.add(fieldBrand); 
vehicleTopPanel.add(vehicleModelLabel); 
vehicleTabPanel.add(fieldModel); 
vehicleTabPanel.add(vehicleProductionYear); 
vehicleTabPanel.add(fieldProductionYear); 
vehicleTabPanel.add(vehicleCapacity); 
vehicleTabPanel.add(fieldCapacity); 

Вы начинаете добавлять к vehicleTabPanel вместо этого. Измените те, которые должны быть vehicleTopPanel, и он будет использовать тот же макет.

+0

спасибо человеку, я знал, что это было что-то действительно глупое ... достаточно программирования на сегодня – user3240544

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