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í
×
    včera 21:33 | Nová verze

    Desktopové prostředí Budgie bylo vydáno ve verzi 10.10. Dokončena byla migrace z X11 na Wayland. Budgie 10 vstupuje do režimu údržby. Vývoj se přesouvá k Budgie 11. Dlouho se řešilo, v čem bude nové Budgie napsáno. Budgie 10 je postaveno nad GTK 3. Přemýšlelo se také nad přepsáním z GTK do EFL. Budgie 11 bude nakonec postaveno nad Qt 6.

    Ladislav Hagara | Komentářů: 0
    včera 13:00 | Humor

    OpenChaos.dev je 'samovolně se vyvíjející open source projekt' s nedefinovaným cílem. Každý týden mohou lidé hlasovat o návrzích (pull requestech), přičemž vítězný návrh se integruje do kódu projektu (repozitář na GitHubu). Hlasováním je možné změnit téměř vše, včetně tohoto pravidla. Hlasování končí vždy v neděli v 9:00 UTC.

    NUKE GAZA! 🎆 | Komentářů: 2
    včera 03:00 | Nová verze

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

    Ladislav Hagara | Komentářů: 0
    10.1. 03:00 | Komunita

    Na stránkách Evropské komise, na portálu Podělte se o svůj názor, se lze do 3. února podělit o názor k iniciativě Evropské otevřené digitální ekosystémy řešící přístup EU k otevřenému softwaru.

    Ladislav Hagara | Komentářů: 6
    9.1. 19:44 | Zajímavý software

    Společnost Kagi stojící za stejnojmenným placeným vyhledávačem vydala (𝕏) alfa verzi linuxové verze (flatpak) svého proprietárního webového prohlížeče Orion.

    Ladislav Hagara | Komentářů: 5
    9.1. 19:11 | IT novinky

    Firma Bose se po tlaku uživatelů rozhodla, že otevře API svých chytrých reproduktorů SoundTouch, což umožní pokračovat v jejich používání i po plánovaném ukončení podpory v letošním roce. Pro ovládání také bude stále možné využívat oficiální aplikaci, ale už pouze lokálně bez cloudových služeb. Dokumentace API dostupná zde (soubor PDF).

    NUKE GAZA! 🎆 | Komentářů: 2
    9.1. 14:22 | Zajímavý článek

    Jiří Eischmann se v příspěvku na svém blogu rozepsal o open source AdGuard Home jako domácí ochraně nejen před reklamou. Adguard Home není plnohodnotným DNS resolverem, funguje jako DNS forwarder s možností filtrování. To znamená, že když přijme DNS dotaz, sám na něj neodpoví, ale přepošle ho na vybraný DNS server a odpovědi zpracovává a filtruje dle nastavených pravidel a následně posílá zpět klientům. Dá se tedy používat k blokování reklamy a škodlivých stránek a k rodičovské kontrole na úrovni DNS.

    Ladislav Hagara | Komentářů: 7
    9.1. 03:33 | Zajímavý software

    AI Claude Code od Anthropicu lépe rozumí frameworku Nette, tj. open source frameworku pro tvorbu webových aplikací v PHP. David Grudl napsal plugin Nette pro Claude Code.

    Ladislav Hagara | Komentářů: 1
    9.1. 00:11 | Nová verze

    Byla vydána prosincová aktualizace aneb nová verze 1.108 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.108 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    8.1. 20:44 | IT novinky

    Na lasvegaském veletrhu elektroniky CES byl předveden prototyp notebooku chlazeného pomocí plazmových aktuátorů (DBD). Ačkoliv se nejedná o první nápad svého druhu, nepochybně to je první ukázka praktického použití tohoto způsobu chlazení v běžné elektronice. Co činí plazmové chladící akční členy technologickou výzvou je především vysoká produkce jedovatého ozonu, tu se prý podařilo firmě YPlasma zredukovat dielektrickou

    … více »
    NUKE GAZA! 🎆 | Komentářů: 15
    Které desktopové prostředí na Linuxu používáte?
     (8%)
     (4%)
     (0%)
     (9%)
     (20%)
     (3%)
     (5%)
     (3%)
     (10%)
     (50%)
    Celkem 374 hlasů
     Komentářů: 8, poslední 10.1. 23:18
    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: 875×
    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.