set Default Components Tab Order - Java Swing

Java examples for Swing:JComponent

Description

set Default Components Tab Order

Demo Code

/*// w  ww. ja v a 2s.  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
 */
//package com.java2s;
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 Tutorials