Java Swing Border setDefaultComponentsTabOrder(Vector v)

Here you can find the source of setDefaultComponentsTabOrder(Vector v)

Description

set Default Components Tab Order

License

Open Source License

Declaration

public static void setDefaultComponentsTabOrder(Vector v) 

Method Source Code


//package com.java2s;
/*/*from ww  w.  ja  v a  2  s. c  o m*/
 This file belongs to the Servoy development and deployment environment, Copyright (C) 1997-2010 Servoy BV
    
 This program is free software; you can redistribute it and/or modify it under
 the terms of the GNU Affero General Public License as published by the Free
 Software Foundation; either version 3 of the License, or (at your option) any
 later version.
    
 This program is distributed in the hope that it will be useful, but WITHOUT
 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
    
 You should have received a copy of the GNU Affero General Public License along
 with this program; if not, see http://www.gnu.org/licenses or write to the Free
 Software Foundation,Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
*/

import java.awt.Component;

import java.awt.Rectangle;
import java.util.Vector;
import javax.swing.JComponent;

public class Main {
    public static void setDefaultComponentsTabOrder(Vector v) {
        //        Component children[] = co.getComponents();
        //        Component tmp;
        Object tmp;
        int i, j, c;

        /** Get the tab order from the geometry **/
        for (i = 0, c = v.size(); i < c; i++) {
            for (j = i; j < c; j++) {
                if (i == j)
                    continue;
                if (compareTabOrder((Component) v.elementAt(j), (Component) v.elementAt(i))) {
                    tmp = v.elementAt(i);
                    //                 tmp = children[i];
                    v.setElementAt(v.elementAt(j), i);
                    //                    children[i] = children[j];
                    v.setElementAt(tmp, j);
                    //                    children[j] = tmp;
                }
            }
        }
        //      return children;
    }

    public static boolean compareTabOrder(Component a, Component b) {
        Rectangle bounds;
        int ay, by;
        int ax, bx;
        if (a instanceof JComponent) {
            ay = ((JComponent) a).getY();
            ax = ((JComponent) a).getX();
        } else {
            bounds = a.getBounds();
            ay = bounds.y;
            ax = bounds.x;
        }

        if (b instanceof JComponent) {
            by = ((JComponent) b).getY();
            bx = ((JComponent) b).getX();
        } else {
            bounds = b.getBounds();
            by = bounds.y;
            bx = bounds.x;
        }

        if (Math.abs(ay - by) < 10) {
            return (ax < bx);
        }
        return (ay < by);
    }
}

Related

  1. repaintBorder(JComponent component)
  2. setBorder(Border b, JComponent... components)
  3. setBorder(JComponent comp, boolean setBorder, Color col)
  4. setBorder(JComponent comp, Border border)
  5. setDebugBorder(final JComponent component)
  6. setViewportBorder(JScrollPane scrollPane, int vertical, int horizontal)
  7. showBorder(JComponent c, Color color)
  8. suppressBorders(JComponent comp)