,že JavaFX není jenom o navrhování GUI přes FXML. FXML je prakticky jenom okrajová záležitost(zatím) a navrhovat se dá GUI stejně jako přes Swing a AWT skládáním objektů bez FXML formulářů.
Dokonce jsem ještě ani neviděl příklad RIA v JaveFX s řešením FXML využité přes JSP, JSF, Servlet či JNLP příp. apllety.
víš o javě a hlavně java ecosystému úplný hovno...
ostatní platformy nemají např. dořešený dependency management, vůbec management, naopak mají nepřenositelný build systém, techniky jako CI jim téměř nic neříkají atd. A to nemluvě o toolingu (IDE, build nástroje, statická analýza atd.).
A hlavně - spousta knihoven - obzvláště pro dotNet je zoufalost nad zoufalost.
Kdo se tomu do budoucna blíží je javascript a ekosystém nad ním postavený (namátkou nodejs + npm, bower, gulp/grunt) apod.
Samozřejmě se prasit dá v jakémkoliv jazyce a bezmozci jsou schopni napsat cokoliv ;)
Postupoval jsem přesně podle článku a výsledkem je prázdné okno.
zkusil jsem doplnit zdrojové kódy podle kódů ke stažení a výsledkem je chyba
Exception in thread "main" java.awt.IllegalComponentStateException: contentPane cannot be set to null.
at javax.swing.JRootPane.setContentPane(JRootPane.java:621)
at javax.swing.JFrame.setContentPane(JFrame.java:698)
at com.company.mainForm.<init>(mainForm.java:17)
at com.company.Main.main(Main.java:9)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Process finished with exit code 1
Což je zřejmě kvůli setContentPane(panel); když se panel nikde v kódu neinicializuje. Vůbec nechápu jaký má ten mainForm.form vliv na aplikaci...
To neni možný. V těch souborech ke stažení je
1) v main.java:
...
JFrame frame = new mainForm();
...
2) v mainForm.java je:
...
public class mainForm extends JFrame {
...
Přitom v článku máte jasně napsané (a odpovídá to tomu k čemu jsem došel i já),
že na řádce 6 je "public class mainForm {"
Tak kde se tam vzalo najednou extends JFrame ??
Navíc, v mainForm.java ke stažení je:
....
private JPanel panel;
public mainForm() {
setContentPane(panel);
....
Kde se panel inicializuje?
Tento zpusob vyuky programovani se mi vubec nelibi. Neni to o programovani, ale o pouzivani jednoho konkretniho vyvojoveho prostredi. Neuci se principy, ale jeden specificky postup. Ukazkovym prikladem je vytvoreni listneru, kdy autor sice pise, ze se vytvori kliknutim do menu, ale uz neni napsane, co to ten listner je, nebo jak se da napsat "rucne".
Takovy zpusob vyuky bude generovat hlavne cargo-cult programatory, kteri budou ztraceni v momente, kdy se setkaji s necim, co jeste nevideli, nebo kdyz se neco pokazi. O tom, ze autor sam neni uplne silny v kramflecich, co se tyce programovani v Jave, svedci i to, ze tam ma nazev tridy zacinajici malym pismenem, ...
Pokud se někdo chce učit programovat, určitě si to chce od začátku zkoušet.
Pokud se chce nekdo ucit programovat, mel by se ucit programovat, ne klikat v IDE. To je presne ta sama (uz mockrat kritizovana situace), kdy se na skolach uci MS Word a Excel misto toho, aby se ucila prace v textovem ci tabulkovem procesoru.
Až se naučí základy, bude mít dost času a hlavně znalosti vybrat si prostředí, jaké chce.
Tady mi uchazi smysl clanku/serialu. Je-li clanek pro absolutni zacatecniky, je blbost je to ucit na tak komplexnim jazyku a molochu jako je Java s JavaFX. Predpoklada-li se, ze programator uz umi Javu, da se predpokladat, ze umi trochu programovat a obejde se bez obrazkovych navodu a oceni, kdyz uvidi, jaky kod a proc by mel psat.
Pokud se chce nekdo ucit programovat, mel by se ucit programovat, ne klikat v IDE.
Pokud se někdo chce učit programovat, potřebuje k tomu program editovat, přeložit, vygenerovat kód, kterému zatím nemusí rozumět. Toho všeho se dá celkem snadno docílit klikáním v IDE. To klikání v IDE neznemožňuje programování, právě naopak, při programování pomáhá. Proto se IDE používají.
Je-li clanek pro absolutni zacatecniky, je blbost je to ucit na tak komplexnim jazyku a molochu jako je Java s JavaFX.
Proč? Začátečník nemusí používat celou Javu, ostatně to nedělá nikdo. A na Hello World! nebo jednoduchou GUI aplikaci je Java jednoduchá.
Pokud se někdo chce učit programovat, potřebuje k tomu program editovat, přeložit, vygenerovat kód, kterému zatím nemusí rozumět. Toho všeho se dá celkem snadno docílit klikáním v IDE.
Ale ten clanek, resp. vyukova metoda jde za hranici toho, co jeste je podpora pri programovani, a co je programovani samotne. Pokud se nekdo uci programovat takto, nebude schopen udelat program v nicem jinem. Problem muze byt i s novou verzi IDE. A to nemluvim o tom, ze to vede k chybam, ktere jdou videt i v teto diskuzi, napr. 1, 2.
A nejhorsi na tom je, ze tak vznikaji zastupy cargo-cult programatoru, kteri neco delaji a vubec nevi co, ale program "funguje".
Začátečník nemusí používat celou Javu, ostatně to nedělá nikdo. A na Hello World! nebo jednoduchou GUI aplikaci je Java jednoduchá.
Nemyslim si. I na to, aby slo vysvetlit neco jednoducheho, je potreba zvladnout objektove programovani, coz v zakladu (a v podani Javy) neni nic jednoducheho.
IMHO mnohem lepsi by bylo ve vyuce pouzit nejaky jednodussi jazyk, napr. python a dodelat k nemu nejakou jednoduchou knihovnu napr. pro praci s grafikou. JavaFX je zbytecne velky a komplikovany moloch.
Javu znám ale v článku se ztrácím :-) Chybí mi tam vysvětlení, co se děje ve skutečnosti pod kapotou. Ideální by byl paralelní výklad - vše co se udělá v IDE dělat souběžně ve vimu, aby člověk pochopil, v čem mu IDE pomáhá. Takový náznak tam byl - to by mělo opravdový potenciál a mimo jiné by to korespondovalo s charakterem root.cz Schází mi taky rámcový popis, jak JavaFX funguje a jak je navržená.
Souhlasím s názorem, že úplný začátečník nemá šanci se zorientovat a je odkázán na mechanické opakování popsaných kroků. Což pro prvních pár lekcí nevadí - pokud mu bude program fungovat. Začátečník opravdu ocení, pokud to bude rovnou něco dělat.
Nicméně ta potřeba podívat se, jak to uvnitř funguje, dříve nebo později nastane a zde se teprve pozná povrchní tutoriál od tutoriálu, který jde do hloubky.