Ahoj,
moc asi nepomuzu s knihovnami ale aspon napisu jak to delam ja:
predevsim pouzivam Netbeans a Matisse.
Na vselijake problemy s listami se hodi vertikalni a horizontalni sipky
nahore, ktere dany kontejner/prvek nedovolit builderu libovolne menit.
Chce to vyzkouset. Obcas se mi to taky rozpadne, hlavne pri vselijakych
presunech, rychle to ale dam zase dohromady.
Pokud se tyka JListu:
placnu na formular JList, do Source pridam:
/** Kolekce dat pro JList */
private ArrayList<Zbozi> seznam = new ArrayList<Zbozi>();
/** Model pro JList (designer, model, FormConnection ) */
private MujListModel mujListModel = new MujListModel();
/** Selection model pro JList (designer, code, postcreate ) */
private MujListSelectionListener mujListSelectionListener = new
MujListSelectionListener();
/** Model obsluhy JListu */
class MujListModel extends AbstractListModel
{
public int getSize()
{
int value = 0;
if (seznam!=null) value = seznam.size();
return value;
}
public Object getElementAt(int i)
{
return seznam.get(i).getNazev();
}
}
/** Obsluha vyberu v JListu */
class MujListSelectionListener implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent listSelectionEvent)
{
if (!jList1.isSelectionEmpty())
{
Zbozi z = seznam.get( jList1.getSelectedIndex() );
setTitle( z.getNazev()+" "+z.getCena() );
}
else
{
setTitle("");
}
}
}
V designeru dam do Properties, Model, FormConnection, UserCode promennou
mujListModel .
Obdobne pridam selection listener v Properties, Code, PostCreation:
jList1.addListSelectionListener( mujListSelectionListener );
Ten model a listener se tam muze primo vytvorit a nemusi byt jako
promenna. Ja to delam takhle protoze treba u TableModelu se pak volaji
metody fireXXX a je to i podle mne prehlednejsi.
Secteno a podtrzeno - v Netbeans za chvilku hotovo.
Porad to neni Delphi ale uz se to blizi.
Delphi zase neumelo spoustu jinych veci :-)
Leos
> pisu jednodussi aplikaci, kde GUI (ve swingu) je asi 60 procent prace.
> Prekvapilo me, jaka je to sichta napsat GUI ve swingu. Vetsinu casu
> potrebu totiz jenom trivialitky, jako vytvorit JList, nahazet do nej
> seznam objektu, obcas zavolat add/remove a nakonci si rict o sezam
> objektu, co jsou momentalne v instanci JListu. Zdany listenery, zadny
> slozity cachry s modelem. A hlavne zadny rozhrani Enumeration!