Cómo hacer para que el ComboBox elementos clasificados

Quiero tener una lista de elementos ordenados en orden ascendente de forma en mi vaadin cuadro combinado. Voy a añadir los artículos a la siguiente.

     for (long i = 1; i < 11; i++) {
            Long item = new Long(i);
            comboBoxPriority.addItem(item);

        }

Yo también lo he probado siguiente manera. Todavía estoy recibiendo un elemento de la lista en orden descendente.

for (long i = 10; i > 0; i--) {
                Long item = new Long(i);
                comboBoxPriority.addItem(item);

            }
  • Para una mejor ayuda antes, publicar un SSCCE.

3 Kommentare

  1. 4

    Una forma sería la de poner los datos en una IndexedContainer, ordenar los datos, a continuación, agregar los datos para el control ComboBox. Ver Charles Anthony ejemplo en el vaadin-foro.

    Aquí está su ejemplo:

    /* Creating a container, with a property of "name". Item Id is a number, here. Can be anything (unique).
    * Alternatively, you could use the IndexedContainer to generate it's own ItemId :
    * cityContainer.getItem(cityContainer.addItem()).getItemProperty("name").setValue("New York");
    */
    IndexedContainer cityContainer = new IndexedContainer();
    cityContainer.addContainerProperty("name", String.class, null);
    cityContainer.addItem(1).getItemProperty("name").setValue("New York");
    cityContainer.addItem(2).getItemProperty("name").setValue("Turku");
    cityContainer.addItem(3).getItemProperty("name").setValue("Paris");
    cityContainer.addItem(4).getItemProperty("name").setValue("Zanzibar");
    cityContainer.addItem(5).getItemProperty("name").setValue("Turin");
    cityContainer.addItem(6).getItemProperty("name").setValue("London");
    cityContainer.getItem(cityContainer.addItem()).getItemProperty("name").setValue("New York");
    /* Lets sort the container on ascending name*/
    cityContainer.sort(new Object[]{"name"}, new boolean[]{true});
    
    /* Here's a comboBox that uses that container, where we are using the "name" property as the item caption */
    ComboBox comboBox = new ComboBox("City", cityContainer);
    comboBox.setItemCaptionMode(AbstractSelect.ITEM_CAPTION_MODE_PROPERTY);
    comboBox.setItemCaptionPropertyId("name");
  2. 8

    Usted podría simplemente agregar los valores a un List y utiliza el Collections API para arreglarlo.

    List<Long> values = new ArrayList<Long>(10);
    for (long i = 10; i > 0; i--) {
        values.add(i);
    }
    Collections.sort(values);
    DefaultComboBoxModel model = new DefaultComboBoxModel(values.toArray(new Long[values.size()]));
    comboBoxPriority.setModel(model);

    Podría lograr lo mismo mediante una matriz y Arrays.sort si que fue eaiser

  3. 2

    Parece que funciona muy bien aquí:

    Cómo hacer para que el ComboBox elementos clasificados

    import java.awt.*;
    import javax.swing.*;
    
    class ReversCombo {
    
        public static void main(String[] args) {
            Runnable r = new Runnable() {
    
                @Override
                public void run() {
                    JPanel gui = new JPanel(new GridLayout(1,0,5,5));
    
                    JComboBox comboBoxPriority = new JComboBox();
                    for (long i = 1; i < 11; i++) {
                        Long item = new Long(i);
                        comboBoxPriority.addItem(item);
                    }
    
                    JComboBox comboBoxPriority2 = new JComboBox();
                    for (long i = 10; i > 0; i--) {
                        Long item = new Long(i);
                        comboBoxPriority2.addItem(item);
                    }
    
                    gui.add(comboBoxPriority);
                    gui.add(comboBoxPriority2);
    
                    JOptionPane.showMessageDialog(null, gui);
                }
            };
            SwingUtilities.invokeLater(r);
        }
    }
    • Lo siento, lo quiero tener en Vaadin no en swing.
    • «lo Siento, lo quiero tener en Vaadin» lo Siento, pero hasta que no puede publicar su propio Vaadin basado SSCCE (que me pidió que publique antes hacer mi propio SSCCE), me puede proporcionar ninguna ayuda adicional.
    • Liyanage -1 por ignorar, en Vaadin se similair Api

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea