package java.awt; import java.io.Serializable; // Referenced classes of package java.awt: // Component, ComponentOrientation, Container, Dimension, // Insets, LayoutManager public class GridLayout implements LayoutManager, Serializable { int hgap; int vgap; int rows; int cols; public GridLayout() { this(1, 0, 0, 0); } public GridLayout(int i, int j) { this(i, j, 0, 0); } public GridLayout(int i, int j, int k, int l) { if(i == 0 && j == 0) { throw new IllegalArgumentException("rows and cols cannot both be zero"); } else { rows = i; cols = j; hgap = k; vgap = l; return; } } public int getRows() { return rows; } public void setRows(int i) { if(i == 0 && cols == 0) { throw new IllegalArgumentException("rows and cols cannot both be zero"); } else { rows = i; return; } } public int getColumns() { return cols; } public void setColumns(int i) { if(i == 0 && rows == 0) { throw new IllegalArgumentException("rows and cols cannot both be zero"); } else { cols = i; return; } } public int getHgap() { return hgap; } public void setHgap(int i) { hgap = i; } public int getVgap() { return vgap; } public void setVgap(int i) { vgap = i; } public void addLayoutComponent(String s, Component component) { } public void removeLayoutComponent(Component component) { } public Dimension preferredLayoutSize(Container container) { Object obj = container.getTreeLock(); JVM INSTR monitorenter ; Insets insets; int j; int k; int l; int i1; insets = container.getInsets(); int i = container.getComponentCount(); j = rows; k = cols; if(j > 0) { k = ((i + j) - 1) / j; } else { j = ((i + k) - 1) / k; } l = 0; i1 = 0; for(int j1 = 0; j1 < i; j1++) { Component component = container.getComponent(j1); Dimension dimension = component.getPreferredSize(); if(l < dimension.width) { l = dimension.width; } if(i1 < dimension.height) { i1 = dimension.height; } } return new Dimension(insets.left + insets.right + k * l + (k - 1) * hgap, insets.top + insets.bottom + j * i1 + (j - 1) * vgap); Exception exception; exception; throw exception; } public Dimension minimumLayoutSize(Container container) { Object obj = container.getTreeLock(); JVM INSTR monitorenter ; Insets insets; int j; int k; int l; int i1; insets = container.getInsets(); int i = container.getComponentCount(); j = rows; k = cols; if(j > 0) { k = ((i + j) - 1) / j; } else { j = ((i + k) - 1) / k; } l = 0; i1 = 0; for(int j1 = 0; j1 < i; j1++) { Component component = container.getComponent(j1); Dimension dimension = component.getMinimumSize(); if(l < dimension.width) { l = dimension.width; } if(i1 < dimension.height) { i1 = dimension.height; } } return new Dimension(insets.left + insets.right + k * l + (k - 1) * hgap, insets.top + insets.bottom + j * i1 + (j - 1) * vgap); Exception exception; exception; throw exception; } public void layoutContainer(Container container) { Insets insets; int i; int j; int k; boolean flag; label0: { synchronized(container.getTreeLock()) { insets = container.getInsets(); i = container.getComponentCount(); j = rows; k = cols; flag = container.getComponentOrientation().isLeftToRight(); if(i != 0) { break label0; } } return; } if(j > 0) { k = ((i + j) - 1) / j; } else { j = ((i + k) - 1) / k; } int l = container.width - (insets.left + insets.right); int i1 = container.height - (insets.top + insets.bottom); l = (l - (k - 1) * hgap) / k; i1 = (i1 - (j - 1) * vgap) / j; if(flag) { int j1 = 0; for(int l1 = insets.left; j1 < k; l1 += l + hgap) { int j2 = 0; for(int l2 = insets.top; j2 < j; l2 += i1 + vgap) { int j3 = j2 * k + j1; if(j3 < i) { container.getComponent(j3).setBounds(l1, l2, l, i1); } j2++; } j1++; } } else { int k1 = 0; for(int i2 = container.width - insets.right - l; k1 < k; i2 -= l + hgap) { int k2 = 0; for(int i3 = insets.top; k2 < j; i3 += i1 + vgap) { int k3 = k2 * k + k1; if(k3 < i) { container.getComponent(k3).setBounds(i2, i3, l, i1); } k2++; } k1++; } } obj; JVM INSTR monitorexit ; goto _L1 exception; throw exception; _L1: } public String toString() { return (new StringBuilder()).append(getClass().getName()).append("[hgap=").append(hgap).append(",vgap=").append(vgap).append(",rows=").append(rows).append(",cols=").append(cols).append("]").toString(); } }