moves the selected items by a certain amount of items in a given direction in JList - Java Swing

Java examples for Swing:JList

Description

moves the selected items by a certain amount of items in a given direction in JList

Demo Code

/*//  w  w w .j  av a 2 s.com
 *    This program is free software; you can redistribute it and/or modify
 *    it under the terms of the GNU General Public License as published by
 *    the Free Software Foundation; either version 2 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 General Public License for more details.
 *
 *    You should have received a copy of the GNU General Public License
 *    along with this program; if not, write to the Free Software
 *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
import javax.swing.DefaultListModel;
import javax.swing.JList;

public class Main{
    /** moves items up */
    public final static int MOVE_UP = 0;
    /** moves items down */
    public final static int MOVE_DOWN = 1;
    /**
     * moves the selected items by a certain amount of items in a given direction
     *
     * @param list        the JList to work on
     * @param moveby      the number of items to move by
     * @param direction   the direction to move in
     * @see               #MOVE_UP
     * @see               #MOVE_DOWN
     */
    protected static void moveItems(JList list, int moveby, int direction) {
        int[] indices;
        int i;
        Object o;
        DefaultListModel model;

        model = (DefaultListModel) list.getModel();

        switch (direction) {
        case MOVE_UP:
            indices = list.getSelectedIndices();
            for (i = 0; i < indices.length; i++) {
                if (indices[i] == 0)
                    continue;
                o = model.remove(indices[i]);
                indices[i] -= moveby;
                model.insertElementAt(o, indices[i]);
            }
            list.setSelectedIndices(indices);
            break;

        case MOVE_DOWN:
            indices = list.getSelectedIndices();
            for (i = indices.length - 1; i >= 0; i--) {
                if (indices[i] == model.getSize() - 1)
                    continue;
                o = model.remove(indices[i]);
                indices[i] += moveby;
                model.insertElementAt(o, indices[i]);
            }
            list.setSelectedIndices(indices);
            break;

        default:
            System.err.println(JListHelper.class.getName()
                    + Messages.getInstance().getString(
                            "JListHelper_MoveItems_Error_Text_First")
                    + direction
                    + Messages.getInstance().getString(
                            "JListHelper_MoveItems_Error_Text_Second"));
        }
    }
}

Related Tutorials