Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

JList(add/remove) celosan primer

[es] :: Java :: JList(add/remove) celosan primer

[ Pregleda: 2562 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dimitar_spiroski

Član broj: 110909
Poruke: 24
79.141.118.*



Profil

icon JList(add/remove) celosan primer09.02.2008. u 19:23 - pre 197 meseci
Molim vas da mi date najjednostavnij primer za JList. ako moze neshto vashe, jer sun-ovo nisam razbrao.
 
Odgovor na temu

grizzly
Beograd

Član broj: 7978
Poruke: 262



+4 Profil

icon Re: JList(add/remove) celosan primer09.02.2008. u 23:05 - pre 197 meseci
pa za pocetak ti moze biti koristan konstrutkor:

JList(Object[] listData)
Constructs a JList that displays the elements in the specified array.

kasnije u reagovanju na dogadjaj mozes saznati sta je izabrano iz liste ili po indeksu

int getSelectedIndex()

ili da ti metoda vrati izabrani objekat

Object getSelectedValue()

ili kazi malo konkretnije sta te muci...
 
Odgovor na temu

dimitar_spiroski

Član broj: 110909
Poruke: 24
79.141.118.*



Profil

icon Re: JList(add/remove) celosan primer10.02.2008. u 12:57 - pre 197 meseci
Ah, muci me sto ne znam kako da postavim listu koju ce biti dinamicna. TO znaci da mi treba primer kako napraviti LJist stavati i odzemati opcije/elemente.

kod bi bio:

*definiraj listu
*dodaj opciu
*odzemi opciju
*procitaj opciju
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
77.46.190.*

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: JList(add/remove) celosan primer10.02.2008. u 13:28 - pre 197 meseci
Trebas da naucis koriscenje modela, procitaj dokumentaciju pa onda analiziraj kod:

Code:

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.ListIterator;

import javax.swing.AbstractListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.event.MouseInputAdapter;

public class Sortiranje {
    List<String> imena;
    JList listaImena;
    JButton dugmeSortiraj;
    JFrame prozor;
    
    JPopupMenu popupMenu;
    JMenuItem itemDodajIme;
    JMenuItem itemUkloniIme;
    
    class MyListModel extends AbstractListModel {
        static final long serialVersionUID = 1L;
        
        public Object getElementAt(int i) {
            return imena.get(i);
        }
        
        public void addElement(String ime) {
            imena.add(ime);
            super.fireIntervalAdded(this, imena.size() - 1, imena.size() - 1);
        }
        
        public void removeElement(int index) {
            imena.remove(index);
            super.fireIntervalRemoved(this, index, index);
        }
        
        public int getSize() {
            return imena.size();
        }        
    }

    void kreirajIPrikaziGUI() {
        upisiPodrazumevanaImena();
        
        prozor = new JFrame("JList Demonstracija - Sortiranje");
        prozor.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        prozor.setPreferredSize(new Dimension(200, 300));
        
        prozor.setLayout(new BorderLayout());
        
        listaImena = new JList(new MyListModel());
        
        prozor.add(new JScrollPane(listaImena), BorderLayout.CENTER);
            
        dugmeSortiraj = new JButton("Sortiraj");
        dugmeSortiraj.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                sortirajImena();
                listaImena.repaint();
            }
        });
        prozor.add(dugmeSortiraj, BorderLayout.PAGE_END);
        
        popupMenu = new JPopupMenu();

        itemDodajIme = new JMenuItem("Dodaj ime");
        popupMenu.add(itemDodajIme);
        
        listaImena.addMouseListener(new MouseInputAdapter(){
            @Override
            public void mouseReleased(MouseEvent event) {
                if (event.isPopupTrigger()) {
                    popupMenu.show(listaImena, event.getX(), event.getY());
                }
            }
        }
        );
        
        itemUkloniIme = new JMenuItem("Ukloni ime");
        popupMenu.add(itemUkloniIme);
        itemDodajIme.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                String ime = JOptionPane.showInputDialog("Unesi ime");
                MyListModel model = (MyListModel)listaImena.getModel(); 
                model.addElement(ime);
            }
        });
        
        itemUkloniIme.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                int index = listaImena.getSelectedIndex();
                if (index == -1) {
                    JOptionPane.showMessageDialog(null, "Morate selektovati element u listi", "Greska", JOptionPane.ERROR_MESSAGE);
                } else {
                    MyListModel model = (MyListModel)listaImena.getModel(); 
                    model.removeElement(index);
                }
            }
        });
        
        
        prozor.pack();
        prozor.setVisible(true);
    }
    
    void sortirajImena() {
        Collections.sort(imena, 
                new Comparator<String>() {        
                    public int compare(String osobaA, String osobaB) {
                        String[] deloviA = osobaA.split(" ");
                        String[] deloviB = osobaB.split(" ");
                        
                        if (deloviA[1].compareTo(deloviB[1]) < 0)
                            return -1;
                        
                        if (deloviA[1].compareTo(deloviB[1]) > 0)
                            return 1;
                        
                        return deloviA[0].compareTo(deloviB[0]);
                    }
                }
            );        
    }

    void upisiPodrazumevanaImena() {
        imena = new ArrayList<String>();
        imena.add("Pera Peric");
        imena.add("Ana Anic");
        imena.add("Mika Mikic"); 
        imena.add("Pera Mikic");
        imena.add("Mika Peric");
        imena.add("Mika Anic");
    }

    void testirajSortiranje() {
        upisiPodrazumevanaImena();
        sortirajImena();
        ispisiImena();
    }
    
    private void ispisiImena() {
            ListIterator<String> i = imena.listIterator(imena.size());
            while (i.hasPrevious())
                System.out.println(i.previous());
    }
    
    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                Sortiranje sortiranje = new Sortiranje();
                sortiranje.kreirajIPrikaziGUI();
            }
        });
    }
}


Ps.
Koristis desni kilik za dodavanje i uklanjanje elemenata iz liste
 
Odgovor na temu

dimitar_spiroski

Član broj: 110909
Poruke: 24
79.141.118.*



Profil

icon Re: JList(add/remove) celosan primer11.02.2008. u 19:02 - pre 197 meseci
Ah, ma to nije sto zelim. Ja samo hocu da naucim osnovu.
Eve na primer sto bi zeleo da netko mi izvede:

http://img408.imageshack.us/img408/3612/desktophe2.jpg

Hocu kad netko clickne na save, u listu da se dodade element so textot od textfieldot.
 
Odgovor na temu

augustus
Novi Sad - Beograd

Član broj: 101581
Poruke: 358
89.216.110.*



+46 Profil

icon Re: JList(add/remove) celosan primer11.02.2008. u 19:49 - pre 197 meseci
http://www.cs.ucl.ac.uk/staff/G.Roberts/2007/JList.html

koji si ti lik....
"Čovek je biće koje se na sve navikava, i ja mislim da je ovo njegova najbolja definicija."
Fjodor M. Dostojevski
 
Odgovor na temu

anon156554

Član broj: 156554
Poruke: 100
*.vektor.net.



Profil

icon Re: JList(add/remove) celosan primer11.02.2008. u 20:16 - pre 197 meseci
Evo ti nesto na brzu ruku. Nisam dobro odradio, sve je na brzu ruku, valjda ces da skontas;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;

public class JlistDemo extends JFrame implements ActionListener{
private JPanel panel;
private JList lista;
private ArrayList<Integer> inicijalnaLista;
private JTextField text;
private JButton actionButton;

public JlistDemo(String titl) {
super(titl);
dodajKomponente();
}

private void dodajKomponente() {
panel = new JPanel(new GridLayout(0, 1));
lista = new JList();
dodajPocetneVrednostiListi(lista);
panel.add(lista);
text = new JTextField(10);
panel.add(text);
actionButton = new JButton("Save");
actionButton.addActionListener(this);
panel.add(actionButton);
this.setContentPane(panel);
this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {

public void run() {
new JlistDemo("Demo").setVisible(true);
}
});
}

private void dodajNovuStavkuUListu(int parseInt) {
DefaultListModel dlm = new DefaultListModel();
inicijalnaLista.add(new Integer(parseInt));
dlm.addElement(inicijalnaLista);
lista.setModel(dlm);
lista.repaint();
}

private void dodajPocetneVrednostiListi(JList lista) {
DefaultListModel dlm = new DefaultListModel();
inicijalnaLista = new ArrayList<Integer>();
dlm = popuniListu(dlm, inicijalnaLista);
lista.setModel(dlm);
}

private DefaultListModel popuniListu(DefaultListModel dlm, ArrayList<Integer> inicijalnaLista) {
for (int i = 1; i < 11; i++) {
inicijalnaLista.add(i);
}
dlm.addElement(inicijalnaLista);
return dlm;

}

public void actionPerformed(ActionEvent arg0) {
String unetaStavka = text.getText().trim();
if (unetaStavka.equals("") || unetaStavka == null)
return;
else
{
dodajNovuStavkuUListu(Integer.parseInt(unetaStavka));
}
}

}
 
Odgovor na temu

[es] :: Java :: JList(add/remove) celosan primer

[ Pregleda: 2562 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.