Rocky Linux byl vydán v nové stabilní verzi 9.4. Přehled novinek v poznámkách k vydání.
Dellu byla odcizena databáze zákazníků (jméno, adresa, seznam zakoupených produktů) [Customer Care, Bleeping Computer].
V lednu byl otevřen editor kódů Zed od autorů editoru Atom a Tree-sitter. Tenkrát běžel pouze na macOS. Byl napevno svázán s Metalem. Situace se ale postupně mění. V aktuálním příspěvku Kdy Zed na Linuxu? na blogu Zedu vývojáři popisují aktuální stav. Blíží se alfa verze.
O víkendu 11. a 12. května lze navštívit Maker Faire Prague, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.
Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.
Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.
Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.
Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).
Apple představil (keynote) iPad Pro s čipem Apple M4, předělaný iPad Air ve dvou velikostech a nový Apple Pencil Pro.
Richard Biener oznámil vydání verze 14.1 (14.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 14. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.
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...
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(); } }
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).
Aby mělJList
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.
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.
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?
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 JList
u 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.
Tiskni Sdílej: