Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Ricerca personalizzata

Java utilizzo di Jlist

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto UtenteMassimoB

1
voti

[11] Re: Java utilizzo di Jlist

Messaggioda Foto Utenteegbit » 21 gen 2018, 22:32

minestra riscaldata :mrgreen:
Codice: Seleziona tutto
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.util.*;

public class MyClass {
    private JFrame f;
    private Container c;
    private Label l;
    private DefaultListModel<String> listModel;
    private JList<String> lista;

   public MyClass (){
      
        f = new JFrame("Principale");
        c = f.getContentPane();
        l = new Label("");

            String array[] = { "Paolo","Franceso","Giovanni","Luca","Mario" };
           
         Arrays.sort(array);
         
            listModel = new DefaultListModel<String>();

            for (String s : array) listModel.addElement(s);
           
            lista = new JList<String>();
            lista.setModel(listModel);

                lista.addListSelectionListener(new ListSelectionListener() {
                    @Override
                    public void valueChanged(ListSelectionEvent e) {
                    if (!e.getValueIsAdjusting()) {
                    String selezione = lista.getSelectedValue();
                    l.setText(selezione);                   
                    }
                    }
                });
               
           
        c.setLayout(new BorderLayout());
        c.add(l,BorderLayout.NORTH);
        c.add(new JScrollPane(lista),BorderLayout.CENTER);
        f.setSize(400,150);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);

    }
     
   public static void main(String args[]) {
        MyClass p = new MyClass();

    }
 
}
Eleonora
Avatar utente
Foto Utenteegbit
898 2 7
Stabilizzato
Stabilizzato
 
Messaggi: 367
Iscritto il: 16 dic 2016, 19:47

0
voti

[12] Re: Java utilizzo di Jlist

Messaggioda Foto UtenteDavideDaSerra » 21 gen 2018, 22:48

... in effetti. è che java non lo uso da un po' ormai. Credo di aver trovato qualcosa di simpatico su SO, vai alla risposta scelta. Il problema è praticamente identico al tuo: passare da ArrayList a Jlist e qui.


... non ho più eclipse installato quindi non ho modo di 'sporcarmi le mani'.
Avatar utente
Foto UtenteDavideDaSerra
70 3
New entry
New entry
 
Messaggi: 83
Iscritto il: 21 gen 2018, 18:41

1
voti

[13] Re: Java utilizzo di Jlist

Messaggioda Foto Utentespivo » 23 gen 2018, 14:12

Risolto, seguendo il consiglio di Foto UtenteTardoFreak creo un ArrayList che può essere ordina per poi passarla a una DefaultListModel che può essere inserita in una JList:
Codice: Seleziona tutto
import javax.swing.JLabel;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JList;
import javax.swing.DefaultListModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.awt.*;

public class MyClass {
    private JFrame f;
    private Container c;
    private Label l;
    private DefaultListModel<String> listModel;

    private JList<String> lista;
   
    private String array[] = new String[11];

   public MyClass (){
        f = new JFrame("Principale");
        c = f.getContentPane();
        l = new Label("....");

            array[0] = "Paolo";
            array[2] = "Franceso";
            array[5] = "Giovanni";
            array[7] = "Luca";
            array[8] = "Mario";
            array[9] = "Franceso";

                //creo un arraylist
                List<String> arrayListOrdinata = new ArrayList<String>();
                //carico le stringeh dall'array origine all'arraylist
                for (int i = 0; i <= 10; i++) {
                        if(array[i] != null){
                        arrayListOrdinata.add(new String(array[i]));
                        }
                }
               
                //ordino l'arraylist
                Collections.sort(arrayListOrdinata);
                //cero defaultlistmodel
                listModel = new DefaultListModel<String>();
           
                //carico l'arraylistordinata nel defaultlistmodel
                for (String stringa : arrayListOrdinata) {
                    listModel.addElement(stringa);
                }

            lista = new JList<String>();
            lista.setModel(listModel);

                lista.addListSelectionListener(new ListSelectionListener() {
                    @Override
                    public void valueChanged(ListSelectionEvent e) {
                    if (!e.getValueIsAdjusting()) {
                    String selezione = lista.getSelectedValue();
                    l.setText(selezione);                   
                    }
                    }
                });
               
        c.setLayout(new BorderLayout());
        c.add(l,BorderLayout.NORTH);
        c.add(new JScrollPane(lista),BorderLayout.CENTER);
        f.setSize(400,150);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);

    }

   public static void main(String args[]) {
        MyClass p = new MyClass();

    }
}

Grazie a tutti Ciao
Avatar utente
Foto Utentespivo
370 1 12
Frequentatore
Frequentatore
 
Messaggi: 178
Iscritto il: 19 dic 2012, 21:29

0
voti

[14] Re: Java utilizzo di Jlist

Messaggioda Foto Utentespivo » 23 gen 2018, 14:18

egbit ha scritto:minestra riscaldata :mrgreen:
Codice: Seleziona tutto
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.util.*;

public class MyClass {
    private JFrame f;
    private Container c;
    private Label l;
    private DefaultListModel<String> listModel;
    private JList<String> lista;

   public MyClass (){
      
        f = new JFrame("Principale");
        c = f.getContentPane();
        l = new Label("");

            String array[] = { "Paolo","Franceso","Giovanni","Luca","Mario" };
           
         Arrays.sort(array);
         
            listModel = new DefaultListModel<String>();

            for (String s : array) listModel.addElement(s);
           
            lista = new JList<String>();
            lista.setModel(listModel);

                lista.addListSelectionListener(new ListSelectionListener() {
                    @Override
                    public void valueChanged(ListSelectionEvent e) {
                    if (!e.getValueIsAdjusting()) {
                    String selezione = lista.getSelectedValue();
                    l.setText(selezione);                   
                    }
                    }
                });
               
           
        c.setLayout(new BorderLayout());
        c.add(l,BorderLayout.NORTH);
        c.add(new JScrollPane(lista),BorderLayout.CENTER);
        f.setSize(400,150);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);

    }
     
   public static void main(String args[]) {
        MyClass p = new MyClass();

    }
 
}

Scusa Foto Utenteegbit non avevo letto bene il tuo messaggio, Ottimo e grazie
Avatar utente
Foto Utentespivo
370 1 12
Frequentatore
Frequentatore
 
Messaggi: 178
Iscritto il: 19 dic 2012, 21:29

2
voti

[15] Re: Java utilizzo di Jlist

Messaggioda Foto UtenteTardoFreak » 23 gen 2018, 15:37

Bene, ed ora un paio di osservazioni.
Tu hai usato un ArrayList ma la cosa si può fare benissimo con un array normale, che tra l'altro spreca meno risorse ed è più veloce ma ... non ha il metodo sort.
Il metodo sort è bello perché fa il lavoro di ordinamento ma, proprio perché gli ordinamenti, le ricerche, le operazioni su matrici sono le pietre miliari della programmazione, la base, il minimo sindacale, rinnovo l'invito a investire del tempo per studiare e sperimentare queste cose.
Ho usato il termine "investire" perché di un vero investimento (con rendimento elevatissimo) si tratta.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,3k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15959
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

1
voti

[16] Re: Java utilizzo di Jlist

Messaggioda Foto UtenteDarwinNE » 23 gen 2018, 18:25

Foto Utentespivo, consiglio anch'io di imparare qualche metodo semplice d'ordinamento.
Per array piccolini non è nemmeno importante cercare l'algoritmo più efficiente ed è un esercizio carino di implementazione. Implementare un bubble sort o un selection sort è tranquillamente alla portata di un principiante ben intenzionato. Quando ti troverai davanti a problemi più seri, consulterai l'ampissima letteratura esistente prima di decidere o meno se e come utilizzare algoritmi seri come quicksort etc...
Follow FidoCadJ development on Twitter: https://twitter.com/davbucci
Avatar utente
Foto UtenteDarwinNE
24,3k 5 11 13
G.Master EY
G.Master EY
 
Messaggi: 3388
Iscritto il: 18 apr 2010, 9:32
Località: Grenoble - France

Precedente

Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti