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 13:55 | Zajímavý software

    Firma Ojective Development vydala svůj nástroj pro monitorování a řízení odchozích síťových připojení Little Snitch i pro operační systém Linux. Linuxová verze se skládá ze tří komponent: eBPF program pro zachytávání provozu a webové rozhraní jsou uvolněny pod GNU GPLv2 a dostupné na GitHubu (převážně Rust a JavaScript), jádro backendu je proprietární pod vlastní licencí, nicméně zdarma k použití a redistribuci (cena přitom normálně … více »

    NUKE GAZA! 🎆 | Komentářů: 0
    včera 18:44 | IT novinky

    Vojenské zpravodajství (VZ) se v březnu zapojilo do mezinárodní operace proti aktivitám hackerské skupiny APT28, která je spojovaná s ruskou vojenskou zpravodajskou službou GRU a která přes slabě zabezpečené routery prováděla kybernetické útoky na státní a další organizace v ČR i zahraničí. Operaci vedl americký Federální úřad pro vyšetřování (FBI) a jejím cílem bylo odebrat útočníkům přístup k napadeným zařízením a ty následně … více »

    Ladislav Hagara | Komentářů: 13
    včera 16:44 | IT novinky

    Tvůrcem nejpopulárnější kryptoměny bitcoin, který se skrývá za pseudonymem Satoši Nakamoto (Satoshi Nakamoto), je britský kryptograf Adam Back. Na základě vlastní investigativní práce to tvrdí americký deník The New York Times (NYT). Několik indicií podle autorů jasně ukazuje na to, že Back a Nakamoto jsou stejný člověk. Jde mimo jiné o podobný odborný a osobnostní profil či totožné chyby a manýry v psaném projevu.

    Ladislav Hagara | Komentářů: 9
    včera 14:44 | Nová verze

    Google Chrome 147 byl prohlášen za stabilní. Nejnovější stabilní verze 147.0.7727.55 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Vylepšeny byly také nástroje pro vývojáře. Přehled novinek v Chrome DevTools 145 až 147 také na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Vývojáři z Laboratoří CZ.NIC vydali nové verze aplikací Datovka (Datovka 4.29.0, Mobilní Datovka 2.6.2). V případě desktopové verze přibyly možnosti projít všechny uložené zprávy, zkontrolovat časy expirací časových razítek a přerazítkovat datové zprávy, které lze v ISDS přerazítkovat. Novinkou je také možnost vytahovat myší ze seznamu ZFO soubory datových zpráv, tento úkon jde udělat i pomocí tlačítek Ctrl+C. Nová verze Mobilní Datovky přináší jen drobné úpravy.

    VSladek | Komentářů: 0
    7.4. 21:55 | Nová verze

    MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.28.0. Z novinek lze vypíchnout novou třídu machine.CAN.

    Ladislav Hagara | Komentářů: 0
    7.4. 10:22 | Komunita

    Michael Meeks, CEO společnosti Collabora, na apríla oznámil, nebyl to ale apríl, že nadace The Document Foundation zastřešující vývoj kancelářského balíku LibreOffice vyloučila ze svých řad všechny zaměstnance a partnery společnosti Collabora, tj. více než třicet lidí, kteří po mnoho let přispívali do LibreOffice. Nadace The Document Foundation po několika dnech publikovala oficiální vyjádření. Přiznává pochybení při zakládání

    … více »
    Ladislav Hagara | Komentářů: 9
    6.4. 05:33 | Pozvánky

    Protože je už po aprílu, můžou strahováci opět zveřejnit program další Virtuální Bastlírny, aniž by připravená témata působila dojmem, že jde o žert. Vězte tedy, že v úterý 14. dubna (změna!!!) od 20:00 proběhne VB, kde se setkají bastlíři, technici, učitelé i nadšenci do techniky a kde i vy se můžete zapojit do družného hovoru, jako by všichni seděli u pomyslného piva. Co mají bastlíři tento měsíc na srdci? Pravděpodobně by nás musel zasáhnout

    … více »
    bkralik | Komentářů: 3
    5.4. 23:33 | Nová verze

    Byla vydána verze 26.1 aneb čtvrtletní aktualizace open source počítačového planetária Stellarium (Wikipedie, GitHub). Vyzkoušet lze webovou verzi Stellaria na Stellarium Web.

    Ladislav Hagara | Komentářů: 1
    5.4. 23:00 | Zajímavý projekt

    VOID (Video Object and Interaction Deletion) je nový open-source VLM model pro editaci videa, který dokáže z videí odstraňovat objekty včetně všech jejich fyzikálních interakcí v rámci scény (pády, kolize, stíny...) pomocí quadmaskingu (čtyřhodnotová maska, která člení pixely scény do čtyř kategorií: objekt určený k odstranění, překrývající se oblasti, objektem ovlivněné oblasti a pozadí scény) a dvoufázového inpaintingu. Za projektem stojí výzkumníci ze společnosti Netflix.

    NUKE GAZA! 🎆 | Komentářů: 10
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (7%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (2%)
     (14%)
     (23%)
    Celkem 1248 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: Java: JTable cell renderer

    Jardík avatar 12.8.2010 16:19 Jardík | skóre: 40 | blog: jarda_bloguje
    Java: JTable cell renderer
    Přečteno: 877×
    Příloha:
    Potřebuji napsat vlastní cell renderer pro JTable (potřebuju renderovat datum ve vlastním formátu). Momentálně mám něco takového:
    final class DateTableRenderer extends DefaultTableCellRenderer
    {
    	DateFormat m_formatter;
    
    	public DateTableRenderer() {
    		super();
    		m_formatter = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);
    	}
    
    	@Override
    	public void setValue(Object value) {
    		setText((value == null) ? "" : m_formatter.format(value));
    	}
    }
    
    Problém však je, že takto renderovaná buňka nerespektuje look&feel, viz obrázek (modrá tečka je řádek, který má focus, červená znázorňuje pozici kurzoru). Zkoušel jsem setOpacity() a to nemá na výsledek vliv. Otázkou tedy je, jak to správně napsat, aby to vypadalo "hezky".
    Věřím v jednoho Boha.

    Řešení dotazu:


    Odpovědi

    12.8.2010 17:06 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Java: JTable cell renderer
    Nebylo by lepší v tomhle případě upravit model? Uživatelský renderer s přepsanou metodou setValue() jsem snad ještě neviděl… U rendereru je hlavně důležitý způsob jeho použití, chtělo by vidět kód, kterým ho nastavujete do tabulky. Kžadopádně bych v setValue() nevolal setText(), ale super.setValue().
    Jardík avatar 12.8.2010 17:46 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Java: JTable cell renderer
    Ten kód jsem našel v tutoriálu na stránkách Oraclu. Jinak model vlastní mám, ale ten přece nekreslí. Na nastevení rendereru používám JTable.setDefaultRenderer(Date.class, new DateTableRenderer());. Můj model pro ten column vrací právě Date.class (metoda getColumnClass(int)).
    Věřím v jednoho Boha.
    Jardík avatar 12.8.2010 17:50 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Java: JTable cell renderer
    Jinak DefaultTableCellRenderer.setValue stejně volá setText((value == null) ? "" : value.toString());
    Věřím v jednoho Boha.
    12.8.2010 17:57 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Java: JTable cell renderer
    Mohl byste v module místo data mít rovnou jeho textovou formu. Prve jsem si nevšiml toho pruhování tabulky – to určitě není standardní DefaultTableCellRenderer, ale nějaký uživatelský, takže ten váš budete muset oddědit od toho, který se používá ve zbytku tabulky (a nebo v tom vašem implementovat stejné vykreslování).
    Jardík avatar 12.8.2010 19:00 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Java: JTable cell renderer
    Tak jsem zjistil, že pokud nenastavím ten renderer, tak se použije vždy renderer z nastavené Look&Feel (pomocí UIManager), v mém případě org.pushingpixels.substance.api.renderers.SubstanceDefaultTableCellRenderer$DateRenderer. Jenže to mi není moc platný, když potřebuju, aby se to renderovalo správně pro každý nastavený UI Look&Feel, pouze potřebuju změnit text. Když zase budu v modelu vracet přímo text a né datum, tak mi zase bude špatně fungovat řazení data a budu muset předělávat to :-(
    Věřím v jednoho Boha.
    Jardík avatar 12.8.2010 19:18 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Java: JTable cell renderer
    A teď teda problém kvůli tomu řazení. Když to vrací String, tak můj komparátor pro daný sloupec (nastavený v TableRowSorter.setComparator) dostane k porovnání už ty Stringy.
    Věřím v jednoho Boha.
    12.8.2010 19:59 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Java: JTable cell renderer
    Tak si vytvořte wrapper kolem rendereru. Z tabulky si vytáhnete aktuální renderer, ten vložíte jako implementaci do vašeho wrapperu a tabulce nastavíte jako renderer váš wrapper. A ten wrapper nebude dělat nic jiného, než měnit hodnotu, všechno ostatní deleguje na interní implementaci.
    Jardík avatar 12.8.2010 20:25 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Java: JTable cell renderer
    Příloha:
    Udělal jsem to takto:
    final class DateTableRenderer implements TableCellRenderer
    {
    	DateFormat m_formatter;
    	TableCellRenderer m_stringRenderer;
    
    	public DateTableRenderer(TableCellRenderer stringRenderer) {
    		super();
    		m_formatter = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);
    		m_stringRenderer = stringRenderer;
    	}
    
    	public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    		if (value == null) {
    			return null;
    		}
    		else {
    			String str = m_formatter.format((Date)value);
    			return m_stringRenderer.getTableCellRendererComponent(table, str, isSelected, hasFocus, row, column);
    		}
    	}
    }
    
    Nastavím ho takto: setDefaultRenderer(Date.class, new DateTableRenderer(getDefaultRenderer(String.class)));. Výsledek je trochu jiný, ale pořád špatný. Jestli implementuju přímo TableCellRenderer nebo podědím z DefaultTableRenderer a překryju tu metodu nemá žádný vliv ...
    Věřím v jednoho Boha.
    12.8.2010 20:36 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Java: JTable cell renderer
    Vrací to getDefaultRenderer(String.class) ten správný renderer (tj. ten z vámi použitého L&F)? Pokud ano, pak už mne napadá jedině možnost, že ten L&F ten renderer nějak částečně obchází, nebo že si tam někde zjišťuje typ rendereru, a pokud je nastaven ten „vlastní“ renderer, chová se to k němu nějak jinak. Chtělo by to podívat se na implementace toho rendereru a TableUI v tom L&F.
    12.8.2010 20:40 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Java: JTable cell renderer
    Ještě doporučuju podívat se na Substance look and feel - FAQ dotaz č. 14 a zmíněný odkaz, jestli z toho něco nevyčtete.
    Jardík avatar 12.8.2010 21:16 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Java: JTable cell renderer
    Moc jste mě nepotěšil :-(
    final class DateTableRenderer extends org.pushingpixels.substance.api.renderers.SubstanceDefaultTableCellRenderer
    {
    	DateFormat m_formatter;
    
    	public DateTableRenderer() {
    		super();
    		m_formatter = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);
    	}
    
    	@Override
    	public void setValue(Object value) {
    		setText(value == null ? "" : m_formatter.format((Date)value));
    	}
    }
    
    Výše napsaný renderer funguje správně. Akorát jsem teď omezený na Substance L&F. Já jsem s ním spokojený, ale jinému uživateli se třeba líbit nemusí. Ještě kouknu na zdroják substance L&F, jak to kreslí, jestli by to šlo nějak lépe.
    Věřím v jednoho Boha.

    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.