2014-10-15 4 views
0

У меня есть 4x4 gridlayout, и я пытаюсь добавить 2 заголовка над таблицами, которые я создал. Я создаю панели для заголовков, но из-за gridlayout он заполняет все пространство. Вот код:Изменение размера области GridLayout

private WebScrollPane createPosRiskPanelWindow(int w, int h) 
{ 
    //Content area 
    posRiskPanel = new WebPanel((new GridLayout(2,2))); 
    posRiskPanel.setBackground(Color.WHITE); 

    //Add title bars 
    WebPanel posTitle = new WebPanel(new WebLabel("Current Positions")); 
    posRiskPanel.add(posTitle); 

    WebPanel riskTitle = new WebPanel(new WebLabel("Risk Exposure")); 
    posRiskPanel.add(riskTitle); 

    //Panels 
    CreatePositionPanel(posRiskPanel); 
    CreateRiskParamsPanel(posRiskPanel); 

    //Scroll content 
    posRiskScroll = new WebScrollPane (posRiskPanel, false); 
    posRiskScroll.setPreferredSize (new Dimension (w, h)); 

    return posRiskScroll; 
} 

А вот как это выглядит:

enter image description here Есть ли способ, что я могу изменить размер этих 2 верхних ящиков?

ответ

3

Не используйте GridLayout для общей компоновки, поскольку единственное, что он знает, это создать ячейки, которые имеют точно такой же размер. Поскольку вы не хотите этого, ваш графический интерфейс потребует другого макета. Вместо этого используйте GridBagLayout, иначе вы можете использовать вложенные JPanels с разными макетами, но я думаю, что GridBagLayout для общей компоновки, скорее всего, лучший выбор здесь. Другие соображения включают MigLayout, если вы хотите использовать стороннюю библиотеку.

+0

ки я дам ему выстрел с GridBagLayout спасибо @Hovercraft – kknaguib

0

Я нашел, что это легче просто положить таблицы в своей собственной панели и титулованные границы так:

enter image description here

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