abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:00 | Upozornění

    Cloudflare, tj. společnost poskytující "cloudové služby, které zajišťují bezpečnost, výkon a spolehlivost internetových aplikací", má výpadek.

    Ladislav Hagara | Komentářů: 2
    dnes 04:22 | Pozvánky

    Letos se uskuteční již 11. ročník soutěže v programování Kasiopea. Tato soutěž, (primárně) pro středoškoláky, nabízí skvělou příležitost procvičit logické myšlení a dozvědět se něco nového ze světa algoritmů – a to nejen pro zkušené programátory, ale i pro úplné začátečníky. Domácí kolo proběhne online od 22. 11. do 7. 12. 2025 a skládá se z 9 zajímavých úloh různé obtížnosti. Na výběru programovacího jazyka přitom nezáleží – úlohy jsou

    … více »
    SoutezKasiopea | Komentářů: 0
    dnes 04:11 | Nová verze

    Byla vydána nová verze 2.52.0 distribuovaného systému správy verzí Git. Přispělo 94 vývojářů, z toho 33 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 18:00 | Nová verze

    VKD3D-Proton byl vydán ve verzi 3.0. Jedná se fork knihovny vkd3d z projektu Wine pro Proton. Knihovna slouží pro překlad volání Direct3D 12 na Vulkan. V přehledu novinek je vypíchnuta podpora AMD FSR 4 (AMD FidelityFX Super Resolution 4).

    Ladislav Hagara | Komentářů: 0
    včera 03:11 | Nová verze

    Poštovní klient Thunderbird byl vydán v nové verzi 145.0. Podporuje DNS přes HTTPS nebo Microsoft Exchange skrze Exchange Web Services. Ukončena byla podpora 32bitového Thunderbirdu pro Linux.

    Ladislav Hagara | Komentářů: 1
    včera 02:33 | IT novinky

    U příležitosti státního svátku 17. listopadu probíhá na Steamu i GOG.com již šestý ročník Czech & Slovak Games Week aneb týdenní oslava a také slevová akce českých a slovenských počítačových her.

    Ladislav Hagara | Komentářů: 0
    16.11. 19:33 | Nová verze

    Byla vydána nová verze 9.19 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze například nový balíček BirdNET-Go, tj. AI řešení pro nepřetržité monitorování a identifikaci ptáků.

    Ladislav Hagara | Komentářů: 0
    16.11. 02:22 | Nová verze

    Byla vydána nová verze 3.38 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.10 souvisejícího programovacího jazyka Dart (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    16.11. 01:33 | Nová verze

    Organizace Apache Software Foundation (ASF) vydala verzi 28 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.

    Ladislav Hagara | Komentářů: 0
    15.11. 16:11 | Nová verze

    Byl vydán Debian 13.2, tj. druhá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (46%)
     (18%)
     (18%)
     (23%)
     (15%)
     (23%)
     (16%)
     (16%)
    Celkem 366 hlasů
     Komentářů: 16, poslední 12.11. 18:21
    Rozcestník

    Dotaz: Java JList Netbeans

    19.7.2009 15:37 Frodo
    Java JList Netbeans
    Přečteno: 844×

    Pokud v Netbeans umistim na JForm komponentu JList, vypada vygenerovany kod teto akce takto:

    jList1.setModel(new javax.swing.AbstractListModel() {
                String[] strings = { "Item1", "Item2", "Item3", "Item4" };
                public int getSize() { return strings.length; }
                public Object getElementAt(int i) { return strings[i]; }
            });
    

    Problem je, ze do takto vytvoreneho seznamu jList1 nemohu pridavat nove prvky. O tomto problemu se treba pise hned na zacatku tady: http://www.seasite.niu.edu/cs580java/JList_Basics.htm a hned za tim je popsany postup jak vytvorit seznam pomoci DefaultListModel tak aby pridavat prvky slo.

     

    Proto jsem se chtel zeptat, zda nekdo nevi, jak Netbeans rict, aby jList vytvarel "inteligentneji" tim druhym zpusobem, abych pak mohl rovnou a lehce do seznamu pripdavat nove prvky.

     

    Vim, ze resenim by bylo ten generovany kod pokazde prepisovat, ale to je v pripade vice seznamu dost otrava...

    Odpovědi

    19.7.2009 17:09 ZAH | skóre: 43 | blog: ZAH
    Rozbalit Rozbalit vše Re: Java JList Netbeans
    Odděl model od Componenty.
    import java.util.ArrayList;
    
    import javax.swing.AbstractListModel;
    
    public class TestModel extends AbstractListModel {
    
        private ArrayList<> data; 
        
        protected ArrayList<String> getData() {
            if (data == null)
                data = new ArrayList<String>();
            return data;
        }
    
        @Override
        public Object getElementAt(int arg0) {       
            return getData().get(arg0);
        }
    
        @Override
        public int getSize() {        
            return getData().size();
        }
    }
    
    19.7.2009 18:52 Frodo
    Rozbalit Rozbalit vše Re: Java JList Netbeans

    Nejak mi unika, jak mi tento kod pomuze k tomu, abych mohl do seznamu dodatecne pridavat data...

    19.7.2009 18:39 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Java JList Netbeans
    Aby měl JList nějaký smysl, musíte mu vždy předat nějaký model. A NetBeansy nemohou vědět, jaký model si přejete. Standardně vám vytvoří model, který umožňuje zobrazovat pevně daný seznam Stringů, který můžete měnit v době návrhu. Pokud chcete nějaký jiný model, musíte jej v grafickém návrháři změnit.

    Také by bylo dobré nastudovat si něco o Swingu a konceptu MVC, protože Swing je postaven na oddělení grafických komponent, modelu (dat) a řízení aplikace, tj. neměl byste se na to dívat tak, že přidáváte další položky do nějaké komponenty JList, ale měl byste přidávat položky do nějakého datového seznamu (do modelu), a JList pouze reprezentuje tento model uživateli (a může ho klidně reprezentovat úplně něco jiného, třeba odrážkový seznam v HTML).
    19.7.2009 18:50 Frodo
    Rozbalit Rozbalit vše Re: Java JList Netbeans

     

    Aby měl JList nějaký smysl, musíte mu vždy předat nějaký model. A NetBeansy nemohou vědět, jaký model si přejete. Standardně vám vytvoří model, který umožňuje zobrazovat pevně daný seznam Stringů, který můžete měnit v době návrhu. Pokud chcete nějaký jiný model, musíte jej v grafickém návrháři změnit.

    Ano, ja chci jiny model, ale prave v tom grafickem navrhari nemuzu nikde najit, kde toho dosahnout. Jsem slepy nebo to tam neni? Mam netbeans 6.7.

     

    Také by bylo dobré nastudovat si něco o Swingu a konceptu MVC, protože Swing je postaven na oddělení grafických komponent, modelu (dat) a řízení aplikace, tj. neměl byste se na to dívat tak, že přidáváte další položky do nějaké komponenty JList, ale měl byste přidávat položky do nějakého datového seznamu (do modelu), a JList pouze reprezentuje tento model uživateli (a může ho klidně reprezentovat úplně něco jiného, třeba odrážkový seznam v HTML).

    O MVC jiste potuchy mam, pouze jsem se vyjadroval zjednodusene - tedy nepresne.

     

    19.7.2009 19:06 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Java JList Netbeans
    Ano, ja chci jiny model, ale prave v tom grafickem navrhari nemuzu nikde najit, kde toho dosahnout. Jsem slepy nebo to tam neni? Mam netbeans 6.7.
    Ve vlastnostech (properties) je vlastnost (property) model. Ta má specializovaný editor, který vám umožní editovat ten model vytvořený NetBeansy, nastavit model jako vlastnost z jiné komponenty, nebo zadat vlastní kód, který model nastavíte. Případně pokud používat tu bindovací knihovnu, kterou používají NetBeansy, můžete model nastavit přes binding.
    20.7.2009 09:32 Frodo
    Rozbalit Rozbalit vše Re: Java JList Netbeans

    Dobre, tak jsem ten automaticky generovany v metode private void initComponents() kod upravil pres ten editor z:

    jList1 = new javax.swing.JList();
    
    jList1.setModel(new javax.swing.AbstractListModel() {
        String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
        public int getSize() { return strings.length; }
        public Object getElementAt(int i) { return strings[i]; }
    });
    
    jScrollPane2.setViewportView(jList2);
    

    na

    DefaultListModel m = new DefaultListModel();
    m.addElement("Prvek 1");
    m.addElement("Prvek 2");
    m.addElement("Prvek 3");
    jList1 = new javax.swing.JList();
    
    jList1.setModel(m);
    
    jScrollPane1.setViewportView(jList1);
    

    Pres model m tedy nyni mohu pridavat dalsi prvky, avsak k teto promenne se zvenci (naprihlad z ActionPerformed tlacitka pro pridani noveho prvku do seznamu) nemohu dostat. Jak to prosim resit?

    20.7.2009 11:07 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Java JList Netbeans
    Pres model m tedy nyni mohu pridavat dalsi prvky, avsak k teto promenne se zvenci (naprihlad z ActionPerformed tlacitka pro pridani noveho prvku do seznamu) nemohu dostat. Jak to prosim resit?
    Tak, že si ve formuláři vytvoříte field typu ListModel (nebo jeho potomka) a do modelu JListu nastavíte jako model ten.

    Pak bych také doporučil přečíst si nějakou základní učebnici Javy a OOP, třeba Učebnice jazyka Java od p. Herouta. Jedno z pokračování se pak zabývá i GUI: Java - grafické uživatelské prostředí a čeština – sice se zabývá především AWT, ale základní principy jsou stejné i pro Swing.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.