📄 j_diagonallayout.java
字号:
// ////////////////////////////////////////////////////////
//
// J_DiagonalLayout.java
//
// ////////////////////////////////////////////////////////
import java.awt.*;
public class J_DiagonalLayout implements LayoutManager
{
public void addLayoutComponent(String name, Component comp)
{
} // End of method: addLayoutComponent
public void removeLayoutComponent(Component comp)
{
} // End of method: removeLayoutComponent
public Dimension preferredLayoutSize(Container parent)
{
Dimension d = null;
Insets s = parent.getInsets( ); // the size of parent's border
Dimension dp = new Dimension(s.left + s.right, s.top + s.bottom);
Component c;
int i;
int n = parent.getComponentCount( );
for (i = 0; i < n; i++)
{
c = parent.getComponent(i);
if (c.isVisible( ))
{
d = c.getPreferredSize( );
dp.width += d.width;
dp.height+= d.height;
} // End of if
} // End of loop: for
return dp;
} // End of method: preferredLayoutSize
public Dimension minimumLayoutSize(Container parent)
{
Dimension d = null;
Insets s = parent.getInsets( ); // the size of parent's border
Dimension dp = new Dimension(0, 0);
Component c;
int i;
int n = parent.getComponentCount( );
for (i = 0; i < n; i++)
{
c = parent.getComponent(i);
if (c.isVisible( ))
{
d = c.getPreferredSize( );
if (d.width> dp.width)
dp.width= d.width;
if (d.height> dp.height)
dp.height= d.height;
} // End of if
} // End of loop: for
dp.width += (s.left + s.right);
dp.height+= (s.top + s.bottom);
return dp;
} // End of method: minimumLayoutSize
public void layoutContainer(Container parent)
{ // Invoked when "parent" is first displayed or its size changes.
int i;
int n = parent.getComponentCount( );
Component c;
Insets s = parent.getInsets( ); // Size of border
Dimension d;
Dimension dp = parent.getSize( ); // Size of container
Dimension dr = preferredLayoutSize(parent); // Size of components
Dimension dc = new Dimension(s.left, s.top); // Current position.
Dimension dg = new Dimension(dp.width-dr.width, dp.height-dr.height);
if (n>1)
{// Calculate the size of gaps
dg.width /= (n-1);
dg.height /= (n-1);
}
for (i = 0 ; i < n ; i++)
{
c = parent.getComponent(i);
if (c.isVisible( ))
{
d = c.getPreferredSize( );
c.setBounds(dc.width, dc.height, d.width, d.height); // dc : position; d: size
dc.width += (dg.width+d.width);
dc.height+= (dg.height+d.height);
}
} // End of loop: for
} // End of method: layoutContainer
} // End of class: J_DiagonalLayout
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -