/* * myLib - https://github.com/taktod/myLib * Copyright (c) 2014 ttProject. All rights reserved. * * Licensed under The MIT license. */ package com.ttProject.swing.component; import java.awt.Container; import javax.swing.GroupLayout; import javax.swing.JComponent; /** * groupLayout helper */ public class GroupLayoutEx extends GroupLayout { /** * constructor * @param comp */ public GroupLayoutEx(Container comp) { super(comp); } /** * set components * @param components */ public void addComponents(Object[][] components) { int yCount = components.length; int xCount = components[0].length; { SequentialGroup hg = createSequentialGroup(); for(int x = 0;x < xCount;x ++) { ParallelGroup pg = createParallelGroup(); for(int y = 0;y< yCount;y ++) { if(components[y][x] instanceof JComponent) { pg.addComponent((JComponent)components[y][x]); } else if(components[y][x] instanceof JComponent[]) { JComponent[] comps = (JComponent[]) components[y][x]; SequentialGroup g = createSequentialGroup(); for(JComponent comp : comps) { g.addComponent(comp); g.addGap(0); } pg.addGroup(g); } } hg.addGroup(pg); } setHorizontalGroup(hg); } { SequentialGroup vg = createSequentialGroup(); for(int y = 0;y < yCount;y ++) { ParallelGroup pg = createParallelGroup(Alignment.BASELINE); for(int x = 0;x < xCount;x ++) { if(components[y][x] instanceof JComponent) { pg.addComponent((JComponent)components[y][x]); } else if(components[y][x] instanceof JComponent[]) { JComponent[] comps = (JComponent[]) components[y][x]; for(JComponent comp : comps) { pg.addComponent(comp); } } } vg.addGroup(pg); } setVerticalGroup(vg); } } }