Advertisement
sedran

Java LayoutManager - AltAlta.java

Feb 1st, 2012
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.04 KB | None | 0 0
  1. /**
  2.  * AltAlta.java
  3.  * for the example code, click the link below:
  4.  * http://pastebin.com/AUNZqL58
  5.  * Serdar KUZUCU - http://blog.asosyalbebe.com
  6.  * Java'da Kendi LayoutManager'ımızı Yaratalım
  7.  * http://blog.asosyalbebe.com/2012/02/java-swing-custom-layoutmanager.html
  8.  */
  9. package sedran.layoutManagers;
  10.  
  11. import java.awt.Component;
  12. import java.awt.Container;
  13. import java.awt.Dimension;
  14. import java.awt.Insets;
  15. import java.awt.LayoutManager;
  16.  
  17. public class AltAlta implements LayoutManager {
  18.     // Space between Components
  19.     private int gap = 5;
  20.    
  21.     // Default border width
  22.     private int myInsets = 5;
  23.  
  24.     public AltAlta() {}
  25.  
  26.     public AltAlta(int gap) {
  27.         this.gap = gap;
  28.     }
  29.  
  30.     public void addLayoutComponent(String arg0, Component arg1) {}
  31.     public void removeLayoutComponent(Component arg0) {}
  32.  
  33.     public void layoutContainer(Container parent) {
  34.         int nComp = parent.getComponentCount();
  35.         Dimension d = null;
  36.         int maxWidth = 0;
  37.         for(int i=0; i<nComp; i++) {
  38.             d = parent.getComponent(i).getPreferredSize();
  39.             if( d.width > maxWidth ) {
  40.                 maxWidth = d.width;
  41.             }
  42.         }
  43.    
  44.         Insets borders = parent.getInsets();
  45.         int top = borders.top + myInsets;
  46.         for(int i=0; i<nComp; i++) {
  47.             Component c = parent.getComponent(i);
  48.             d = c.getPreferredSize();
  49.             c.setBounds(borders.left + myInsets, top, maxWidth, d.height);
  50.             top += d.height + gap;
  51.         }
  52.     }
  53.  
  54.     public Dimension minimumLayoutSize(Container parent) {
  55.         Insets borders = parent.getInsets();
  56.         int nComp = parent.getComponentCount();
  57.         Dimension d = null;
  58.         int maxWidth = 0;
  59.         int sumHeight = 0;
  60.         for(int i=0; i<nComp; i++) {
  61.             d = parent.getComponent(i).getPreferredSize();
  62.             if( d.width > maxWidth ) {
  63.                 maxWidth = d.width;
  64.             }
  65.             sumHeight += d.height;
  66.         }
  67.         int height = sumHeight + borders.top + myInsets*2 + borders.bottom + gap*(nComp-1);
  68.         int width = maxWidth + borders.left + borders.right + myInsets*2;
  69.         return new Dimension(width, height);
  70.     }
  71.  
  72.     public Dimension preferredLayoutSize(Container parent) {
  73.         return minimumLayoutSize(parent);
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement