Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Něco navíc v zeleném?
A proč ne...

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub Programování [ŽP: neomezená] (kategorie Programování) moderuje tvx.
Archiv
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: jhtzcsj
[ 857 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
operator304 2.6.2011 22:05  1277
puschpull [1274]: Osobne bych doporucil groovy a pro webove aplikace groovy on grails. Snadno se to rozbiha, 80% to udela za tebe a neni tam tolik balastu jako v Jave...
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 2.6.2011 21:01  1276
huh [1275]:
Dík za názory

Myslím že by ho mohli zajímat programovat nějaké jednoduché hry a hříčky ( na procvičování) a webové aplikace (nějaké ty základy)

ale jako začátek bych viděl třeba nějaký GUI a v něm vykreslení nějaké křivky podle zadaných parametru, kružnice, elipsa atd ..., klasika jako kvadratické rovnice
prostě umět něco napsat, zkompilovat a vytvořit nějaký exe soubor, který bude "vidět"
:-)
huh huh 2.6.2011 20:47  1275
Čistě subjektivní názorTo se těžko radí, když člověk netuší, jaké typy aplikací by ho bavili. Hry? Standardní aplikace? Webové aplikace?

Osobně bych vycházel z toho, že člověka nejvíc baví, když může věci ukazovat kamarádům, těm se bez problémů spustí (není potřeba řešit runtimy, dllka a pod.), nahrát na freeweb atd. Z toho důvodu bych měl dva tipy:

ActionScript ve Flashi
++ snadno umístí výsledek na web, snadno vygeneruje spustitelný soubor
+ jestli je grafik, tak by mu prostředí Flashe mohlo sednout, je to koneckonců dneska taky od Adobe
+ existuje i v češtině literatura pro začátečníky
+ manipulace s objekty přirozeně učí OOP
+ později může navázat Adobe Airem
+ snadná tvorba her -- integrovaná práce s grafikou, zvukem atd.
- placené
- z principu mírně omezené

Javascript v prohlížeči
++ snadno nahraje na web, snadno nahraje kamarádům
+ stačí něco jako PSPad
+ manipulace s objekty přirozeně učí OOP
+ dá se navázat js na straně serveru, js pro WSH
- nutno řešit nekompatibility prohlížečů a jejich verzí
- z principu omezené

Nejlepši samozřejmě je mít nějakého kamaráda -- programátora a pak používat to samé, to je pak už vcelku jedno co.
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 2.6.2011 19:48  1274
dotazKluk by mohl začít něco okolo programování.
On by chtěl, já také, raději ať se mu už trochu formuje myšlení (což už u mě moc nejde)
Nyní končí 7. třídu ZŠ.

Potřebuji poradit, jaké zvolit na tento začátek vývojové protředí, jaký jazyk, aby si vytvořil nějaké základní návyky, které by mu později pomohly ...

Netuším zda volit C/+/++, Python, Java, Visual Basic, nebo něco úplně jiného. (Ve škole žádný kroužek nemají, repektive něco tam měli, ale sestávalo se to nakonec z hraní her na starých počítačích ...)

Doma samozřejmě hry hraje, na PC je pečenej vařenej, umí docela dobře design (intenzivně si pracuje s Photoshopem, občas i vyhraje nějakou soutěž, okolo návrhů v oblasti nových her, a celkem si věří)
Chci ho popostrčit, aby trochu ochutnal i programování a pocítil radost z toho, když kód dělá to, co by měl
:-)

Díky za každou dobrou radu.
dodanek Dodanek 22.5.2011 12:51  1272
Už to asi mám.
dodanek Dodanek 22.5.2011 12:43  1271
CHYBA: Nelze vytvorit soubor. EvidenceZamestnancu.dat (Požadovanou operaci nelze provést se souborem, jehož uživateli mapovaný oddíl je otevřen)

Chápu dobře, že se to snaží zapisovat do souboru, kterej je ve třídě, která se snaží volat to zapisování, otevřenej?
huh huh 22.5.2011 11:20  1270
Dodanek [1265]: Tak v zásadě stačí, když tu instanci evidence drží Model. Ono je to tak skoro lepší, protože pak se veškeré změny dělají prostřednictvím Modelu a nehrozí, že ti někdo evidenci změní, aniž by byl model informován.

Dodanek [1268]: já bych si zkotroloval, co ti po tom smazání vrací getRowCount(), potažmo evidence.pocet();
dodanek Dodanek 22.5.2011 11:05  1269
Ale každopádně mi to rozšířilo obzory, dokonce chápu, proč to nefungovalo a proč to (až na to o trochu níž) funguje! :)
dodanek Dodanek 22.5.2011 10:22  1268
Tak mazání funguje, děkuju a chtěl bych říct, že to fakt nechápu, protože:

public void odeber(int row) {
evidence.deletePolozka(evidence.getPolozka(row));
fireTableRowsDeleted(row - 1, row - 1);
}
jede tak, jak má, a když tam není -1, tak jede tak, jak má, jen ne pro poslední řádku .. z toho plyne, že nechápu, jak se v tomhle případě maže ta správná :D
operator304 22.5.2011 09:44  1267
Snazis se pristupovat k nejakymu poli, ktery je moc kratky...

Proste do pole o delce 5 cpes sestou polozku. Pole narozdil od kolekci neni nafukovaci...
dodanek Dodanek 22.5.2011 09:41  1266
Výborný. Tak mi to funguje, ale padá mi to při padání poslední položky v seznamu (vždy). java.lang.IndexOutOfBoundsException: Index: 5, Size: 5
dodanek Dodanek 22.5.2011 09:13  1265
Moc děkuju. Celý to ztroskotává asi v celym návrhu (kterej dělala Alenka Buchalcevová), ve kterym v tý gui třídě, která drží tabulku a tlačítka, není o existenci nějaký evidence ani tušení. Já se v tom nějak porejpu, ten příklad mi pomůže :)
huh huh 22.5.2011 01:47  1264
Tady je spustitelný příklad. Je to narychlo zbastlený do příkladu na řazení JTable podle sloupců toho si nevšímej. Data to na disk nezapisuje/nečte, ale je to na to připravený (pomocí serializace -- v zásadě mnohem jednodušší než se patlat s tím ručně).
huh huh 22.5.2011 01:39  1263
Tohle:

class DeleteZamestnanecActionListener implements ActionListener {

public void actionPerformed(ActionEvent e) {

EvidenceZamestnancu temp = new EvidenceZamestnancu();
TableZamestnanec.addTableModelListener(evidenceTable);
temp.nactiSeznam();

temp.deletePolozka(temp.getPolozka(vybranyRadek));

temp.ulozSeznam();
}

je celý nějaká blbost.

MVC u JTable funguje (zjednodušeně pro tenhle příklad) takhle:
1) máš svůj byznys objekt, v tvém případě instanci EvidenceZamestnancu. Tu vytvoříš na začátku programu. Žádnou jinou instanci už během programu nevytváříš! (Leda bys chtěl mít několik navzájem nezávislých evidencí.)
2) Tu zobrazuješ pomocí instancí JTable (ty fungují jako View a Controller). V našem případě je jen jedna, ale mohlo by jich být více.
3) Jenomže JTable nezná naši evidenci zaměstnanců. Co s tím? Vytvoříme 1 instanci Modelu, který zapouzdří 1 instanci naší evidence. Modelem je myšlena naše vlastní třída implementující TableModel.
4) chceme-li pak např. mít tlačítko, které smaže řádek vybraný v tabulce. Jak na to? Do Modelu přidáme např. metodu odeber. Ta udělá dvě věci: a) řekne instanci EvidenceZamestnancu (té kterou si drží od začátku, žádnou další už si nevytváří!), aby záznam odebrala; b) zavolá fireXXX, v tomto případě fireTableRowsDeleted, aby se přihlášené instance View (JTable) dozvěděly o změně. V obsluze tlačítka pak jenom zavoláme odeber Modelu a předáme mu číslo mazaného řádku. Nějak takhle:
        JButton b = new JButton("Delete");
        b.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if (tab.getSelectedRowCount() > 0) {
                    ((DatovyModel)tab.getModel()).odeber(tab.getSelectedRows()[0]);                    
                }
            }
        });
Zapamatovat si: 1 instance byznys objektu, 1 instance modelu, libovolné množství instancí JTable.
dodanek Dodanek 21.5.2011 23:32  1262
Podle dokumentace by to, co potřebuju, měla dělat metoda

fireTableDataChanged

public void fireTableDataChanged()
Notifies all listeners that all cell values in the table's rows may have changed. The number of rows may also have changed and the JTable should redraw the table from scratch. The structure of the table (as in the order of the columns) is assumed to be the same.

Nicméně tu, co tam mám, musim taky nějak naimplementovat, ale vůbec netuším, jak.

[ 857 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt