I made the 4 buttons with top, move up, move down and bottom. But I took open the files for test.txt in LJist and it won't move it How do I add something. I will show you the code. And I saw Error for to press move down, it won't work. I read error message, not work for swap. "Object aObject = ListModel.getElementAt(a);" I thought the file or something. I want to know. Thanks.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * JListTest.java
 *
 * Created on Mar 22, 2011, 8:38:23 AM
 */

import java.io.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
/**
 *
 * @author 
 */
public class JListTest extends javax.swing.JFrame {

    DefaultListModel ListModel = new DefaultListModel();
    /** Creates new form JListTest */
    public JListTest() {
        initComponents();

        upButton.addActionListener(new MixedListener());
        downButton.addActionListener(new MixedListener());
        topButton.addActionListener(new MixedListener());
        bottomButton.addActionListener(new MixedListener());

    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jButtonBrowse = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jListMain = new javax.swing.JList(ListModel);
        topButton = new javax.swing.JButton();
        upButton = new javax.swing.JButton();
        downButton = new javax.swing.JButton();
        bottomButton = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jButtonBrowse.setMnemonic('B');
        jButtonBrowse.setText("Browse");
        jButtonBrowse.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonBrowseActionPerformed(evt);
            }
        });

        jScrollPane1.setViewportView(jListMain);

        topButton.setFont(new java.awt.Font("Times New Roman", 0, 18));
        topButton.setText("Top");
        topButton.setAutoscrolls(true);
        topButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                topButtonActionPerformed(evt);
            }
        });

        upButton.setFont(new java.awt.Font("Times New Roman", 0, 18));
        upButton.setText("Move Up");
        upButton.setAutoscrolls(true);
        upButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                upButtonActionPerformed(evt);
            }
        });

        downButton.setFont(new java.awt.Font("Times New Roman", 0, 18));
        downButton.setText("Move Down");
        downButton.setAutoscrolls(true);
        downButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                downButtonActionPerformed(evt);
            }
        });

        bottomButton.setFont(new java.awt.Font("Times New Roman", 0, 18));
        bottomButton.setText("Bottom");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                            .addComponent(bottomButton)
                            .addComponent(downButton)
                            .addComponent(upButton)
                            .addComponent(topButton)))
                    .addComponent(jButtonBrowse))
                .addContainerGap(27, Short.MAX_VALUE))
        );

        layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {bottomButton, downButton, topButton, upButton});

        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jButtonBrowse)
                        .addGap(18, 18, 18)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 228, Short.MAX_VALUE)
                        .addContainerGap())
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addComponent(topButton)
                        .addGap(18, 18, 18)
                        .addComponent(upButton)
                        .addGap(18, 18, 18)
                        .addComponent(downButton)
                        .addGap(18, 18, 18)
                        .addComponent(bottomButton)
                        .addGap(46, 46, 46))))
        );

        pack();
    }// </editor-fold>                        

    private void jButtonBrowseActionPerformed(java.awt.event.ActionEvent evt) {                                              
        JFileChooser jFileChooser = new JFileChooser(new File("."));
        jFileChooser.setDialogTitle("Browse For File");
        jFileChooser.setFileSelectionMode(jFileChooser.FILES_AND_DIRECTORIES);
        int reply = jFileChooser.showOpenDialog(this);
        if (reply == jFileChooser.APPROVE_OPTION){
            readFileAndPopulateList(jFileChooser.getSelectedFile());
        }
}                                             

    private void topButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          

}                                         

    private void upButtonActionPerformed(java.awt.event.ActionEvent evt) {                                         

}                                        

    private void downButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           

}                                          

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new JListTest().setVisible(true);
            }
        });
    }

    class MixedListener implements ActionListener{
        public void actionPerformed (ActionEvent evt){
            int moveSpace = jListMain.getSelectedIndex();
            int ItemIndexOfItemToMove = jListMain.getSelectedIndex();


            //for testing, deleye afterwards
            //System.out.println("pos: " + scrollPane1.getScrollPosition());
            if (evt.getSource() == topButton){
                for(int i = ItemIndexOfItemToMove; i != 0; i--){
                    swap(i,i-1);
                    jListMain.setSelectedIndex(i-1);
                    jListMain.ensureIndexIsVisible(i-1);
                }
            }
            else if(evt.getSource() == upButton)
            {
                //Up to move Button with space list
                if (moveSpace != 0){
                    swap(moveSpace,moveSpace -1);
                    jListMain.setSelectedIndex(moveSpace-1);
                    jListMain.ensureIndexIsVisible(moveSpace-1);
                }
            }
            else if (evt.getSource() == downButton)
            {
                //Down to move Button with space list
                if (moveSpace != ListModel.getSize() - 1){
                    swap(moveSpace,moveSpace +1);
                    jListMain.setSelectedIndex(moveSpace+1);
                    jListMain.ensureIndexIsVisible(moveSpace+1);
                }
            }
            else
            {
                 for(int i = ItemIndexOfItemToMove; i != (ListModel.getSize() - 1); i++){
                    swap(i,i+1);
                    jListMain.setSelectedIndex(i+1);
                    jListMain.ensureIndexIsVisible(i+1);
                 }
            }
        }
    }
    private void readFileAndPopulateList(File selectedFile){
        try{
            BufferedReader reader = new BufferedReader(new FileReader(selectedFile));
            String line = "";
            //Vector<String> values = new Vector<String>();
            while ((line = reader.readLine())!= null){
               if (!line.equals("")) {
                   //values.add(line);
                   ListModel.addElement(line);
               }
            }
            //jListMain.setListData(values);
        }catch (Exception e){
            JOptionPane.showMessageDialog(this, "Error: " + e.toString());
        }
    }
    private void swap (int a, int b){
        Object aObject = ListModel.getElementAt(a);
        Object bObject = ListModel.getElementAt(b);
        ListModel.set(a, bObject);
        ListModel.set(b, aObject);
    }
    // Variables declaration - do not modify                     
    private javax.swing.JButton bottomButton;
    private javax.swing.JButton downButton;
    private javax.swing.JButton jButtonBrowse;
    private javax.swing.JList jListMain;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JButton topButton;
    private javax.swing.JButton upButton;
    // End of variables declaration                   

}

Edited 5 Years Ago by Tazsweet19: n/a

This article has been dead for over six months. Start a new discussion instead.