Microsoft Defender nově podporuje linuxové desktopy.
Oficiální Epic Games Launcher je v nové preview verzi poprvé dostupný i pro Linux (FAQ). Pracuje se na novém Easy Anti-Cheatu pro Linux (EAC Linux v2) a podpoře hry Fortnite na Linuxu.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.8. Novinky zahrnují lepší podporu vzdálené plochy, sdílení a nahrávání obrazovky a řadu drobností napříč uživatelským rozhraním (úplný seznam změn, shrnutí ve wiki).
Apple představil 7palcový displej Apple HomeView s podporou Apple Intelligence a Siri AI pro ovládání chytré domácnosti, novou řadu vybavení chytré domácnosti Apple Home Collection, další generaci HomePodu mini a novou Apple TV 4K. Apple HomeView není v Evropské unii v prodeji, jelikož umělá inteligence Siri v rámci systému iOS v EU momentálně není k dispozici. Apple spolupracuje s EU a snaží se najít cestu, jak situaci vyřešit.
KDE slaví 30 let. Přesně před 30 lety, 14. října 1996, poslal Matthias Ettrich do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu KDE. Důležité milníky jsou zobrazeny na časové ose.
Byl vydán Mozilla Firefox 158.0. Stejně jako Chrome 155 s podporou JPEG XL (test). Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 158 bude brzy k dispozici také na Flathubu a Snapcraftu.
Svobodný kancelářský balík ONLYOFFICE (Wikipedie) byl vydán ve verzi 10.0. Jak online Docs, tak i offline Desktop Editors. Přehled novinek také na YouTube.
Mozilla představuje Firefox Enterprise určený jako podnikový prohlížeč pro organizace s přísnými požadavky na bezpečnost, správu a dodržování předpisů. S profesionální podporou. Dostupný je zatím ve Francii, Německu, Rakousku a Švýcarsku.
Kybernetický útok zasáhl nejméně 150 supermarketů Intermarché a několik prodejen řetězců Leclerc a Coopérative U. Chladicí jednotky napadených obchodních domů byly nastaveny na nepřetržité odmrazování a teplota v nich mnohdy vystouala až nad 50°C. Škody napáchané na chlazeném a mraženém zboží budou patrně dosahovat miliónů eur.
… více »Stát Kalifornie zažaloval výrobce 3D tiskových filamentů Polymaker. Vrchní soud San Diego County tvrdí, že firma propagací svých výrobků mezi příznivci 3D tištěných zbraní podporovala výrobu takzvaných 'ghost guns' (DIY zbraní) a že její PLA filament pro 3D tiskárny lze za těchto okolností považovat za součást určenou k výrobě střelné zbraně. Žaloba požaduje mimo jiné finanční sankce a soudní zákaz činnosti, Polymaker se hájí tím, že filament je běžný a sám o sobě legální produkt. Celý text žaloby (PDF na Google Drive).
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ělJListně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 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.
Tiskni
Sdílej: