Pregunta

He creado 2 Jlists 'AddGrouplist' y 'AddApklist'.Estoy agregando elementos a AddGroupplist usando model.addelement (ArrayList1.Get (ArrayList1.Size () - 1));Lo que es, quiero actualizar AddApklist en función del valor seleccionado de AddGroupplist.Para esto, estoy tratando de agregar a los escuchadores de eventos para que pueda actuar sobre algo cuando se selecciona la lista de la lista, pero el evento no está trigerrando. ¿Qué hago para lograr esto? Siguiente es el código que estoy usando.

    model1 = new DefaultListModel();
    model2 = new DefaultListModel();

    addApkList = new JList(model1);
    addGroupList = new JList(model2);

    scrollPane1 = new JScrollPane();
    scrollPane1.setViewportView(addApkList);
    scrollPane2 = new JScrollPane();
    scrollPane2.setViewportView(addGroupList);

De esta manera he definido JLIST. de la siguiente manera he agregado elementos a AddGroupplist

model1.addElement(arrayList1.get(arrayList1.size()-1));

y de siguiente manera he agregado oyente.

addGroupList.addListSelectionListener(new ListSelectionListener() {

        @Override
        public void valueChanged(ListSelectionEvent lse) {
            if (!lse.getValueIsAdjusting()) {
              System.out.println("Selection trigerred");
            }
        }
    });

No parece que ocurra ningún cambio con este código.¿Qué estoy haciendo mal? También he intentado seguir

model1.addListDataListener(new ListDataListener() {

            @Override
            public void intervalAdded(ListDataEvent lde) {
                System.out.println("ddddddddddd");
                throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
            }

            @Override
            public void intervalRemoved(ListDataEvent lde) {
                System.out.println("ddddddddddd");
                throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
            }

            @Override
            public void contentsChanged(ListDataEvent lde) {
                System.out.println("ddddddddddd");
                throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
            }
        });

¿Fue útil?

Solución

De siguiente modo, he agregado elementos a AddGroupplist

model1.addElement(arrayList1.get(arrayList1.size()-1));

no, no lo has hecho.model1 es el modelo de lista para addApkList no addGroupList:

 addApkList = new JList(model1);

Debe ser model2.addElement(arrayList1.get(arrayList1.size()-1)).

En cualquier caso, sospecho que está esperando para un listselectionEvent siendo despedido cuando simplemente agregue un elemento al modelo de lista.Eso no sucederá.Debe configurar el elemento agregado como el seleccionado:

Object item = arrayList1.get(arrayList1.size()-1);
model2.addElement(item);
addGroupList.setSelectedValue(item, true);

Eche un vistazo a jlist.setselectedValue (objeto ANOBJECT, BOOLEAN SHUTSCROLL) para más detalles.

Otros consejos

He creado 2 Jlists 'AddGrouplist' y 'AddApklist'.Estoy agregando Elementos para addgroupplist usando model.addelement (arraylist1.get (ArrayList1.Size () - 1));La cosa es, yo desea actualizar ADDAPKLIST en función del valor seleccionado de AddGroupplist.Para Esto, estoy tratando de agregar a un escuchador de eventos para que pueda actuar sobre Algo cuando se selecciona la lista de la lista, pero el evento no está trigerrando. ¿Qué hago para lograr esto?Siguiente es el código que estoy usando.

por ejemplo

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class Testing extends JFrame {

    private static final long serialVersionUID = 1L;
    private DefaultListModel listModel = new DefaultListModel();
    private DefaultListModel listModelEmpty = new DefaultListModel();
    private JList list = new JList(listModel);
    private JList listEmpty = new JList(listModelEmpty);
    private JPanel panel = new JPanel(new GridLayout(1, 1));
    private int currentSelectedRow = 0;
    private int xX = 0;

    public Testing() {
        setLocation(400, 300);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        for (int x = 0; x < 9; x++) {
            listModel.addElement("" + x);
            xX++;
        }
        JScrollPane sp = new JScrollPane(list);
        list.addListSelectionListener(new ListSelectionListener() {
            @Override
            public void valueChanged(ListSelectionEvent lse) {
                if (!lse.getValueIsAdjusting()) {
                    System.out.println("Selection trigerred");
                }
            }
        });
        JScrollPane spEmpty = new JScrollPane(listEmpty);
        panel.add(spEmpty);
        panel.add(sp);
        add(panel, BorderLayout.CENTER);
        JButton btn1 = new JButton("Reset Model CastingModel");
        add(btn1, BorderLayout.NORTH);
        btn1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                //list.clearSelection();
                DefaultListModel model = (DefaultListModel) list.getModel();
                model.removeAllElements();
                for (int x = 0; x < 9; x++) {
                    model.addElement("" + (x + xX));
                    xX++;
                }
                list.setModel(model);
            }
        });

        JButton btn2 = new JButton("Reset Model directly from Model");
        add(btn2, BorderLayout.SOUTH);
        btn2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                //list.clearSelection();
                listModel.removeAllElements();
                for (int x = 0; x < 9; x++) {
                    listModel.addElement("" + (x + xX));
                    xX++;
                }
            }
        });
        pack();
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new Testing().setVisible(true);
            }
        });
    }
}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top