De afgelopen dagen heb ik me weer in swing verdiept, dit is een gui lib voor java. Nu had ik al een paar jaar geleden eens naar swing gekeken en wat documentatie doorgenomen, maar het was destijds nogal basic, maw. er waren niet veel mogelijkheden (controls, classes, e.d.) ook was het nogal traag.
Met wat tegenzin begon ik dus aan een refresh van swing, de api bleek sterk uitgebreid te zijn en de documentatie + swing tutorial leiden mij mooi door de gehele api heen. Ik heb eigenlijk nooit meer dan 2 minuten naar iets moeten zoeken (muv waarom je een jframe met code sluit er geen windowclosing event werd gegenereert).
Maar na al dat gelees begon ik een een test applicatie, eerst de gui op papier en daarna met jbuilder slepen en clicken. Dat bleek eerder slepen en typen te zijn
want die gridbaglayout heeft veel parameters. Maar ja, binnen een paar uur had ik een non functioneel prototype.
Alles draaide goed, de gui was reageerde snel op m'n muisclicks e.d. Daarom ging ik vlug naar de implementatie, dat gedeelte was niet zo interessant voor dit bericht. In iedergeval dat is ook gelukt.
Nu zit ik dus met een functionele applicatie die niet onderdoet voor de normale windows applicatie bijvoorbeeld gemaakt met delphi. Gui reageert snel, code functies worden normaal uitgevoerd, ik heb geen bugs in swing kunnen ontdekken, MV concept is erg handig. Nadat je bekend bent met swing heb je zo een gui in elkaar zitten. De code is erg "schoon" (dat komt waarschijnlijk omdat de tabs aparte jpanels zijn die in aparte classes zitten). Bijvoorbeeld de tab Preset bestaat uit classe Preset (M) en de PresetPanel (V), mooi gescheiden via het MVC principe, ook erg handig als je de applicatie wil converteren naar webapplicatie, je hoeft dan in principe alleen maar de View te veranderen.
Maar waar ik heen wil, je hoort vaak negatieve verhalen over de java gui combinatie bijvoorbeeld swing, maar het is mij in deze testcase erg goed bevallen.
Ik heb overigens gebruik gemaakt van jdk1.4.1 en een snelle computer (2ghz processort, 512 mb ram). Ik kan er wel van uitgaan dat ik dit over een jaar of ander half (als het uiteindelijke systeem klaar is) als minimum systeem kan eisen.
Ik begrijp dat java swing niet bedoeld is voor kleine utilities zoals een cpu watcher, du meter, een explorer vervanger, enzovoorts, omdat deze programma's sterk afhankelijk zijn van het OS en als je dat wilt dan moet je niet bij java zijn. Maar bij normale applicaties die redelijk onafhankelijk zijn van het OS is java (swing) bijna perfect.
Hoe denken jullie hierover?
Een aantal screenshots om te laten zien dat de gui niet onderdoet voor de normale gui van programma's:



Met wat tegenzin begon ik dus aan een refresh van swing, de api bleek sterk uitgebreid te zijn en de documentatie + swing tutorial leiden mij mooi door de gehele api heen. Ik heb eigenlijk nooit meer dan 2 minuten naar iets moeten zoeken (muv waarom je een jframe met code sluit er geen windowclosing event werd gegenereert).
Maar na al dat gelees begon ik een een test applicatie, eerst de gui op papier en daarna met jbuilder slepen en clicken. Dat bleek eerder slepen en typen te zijn
Alles draaide goed, de gui was reageerde snel op m'n muisclicks e.d. Daarom ging ik vlug naar de implementatie, dat gedeelte was niet zo interessant voor dit bericht. In iedergeval dat is ook gelukt.
Nu zit ik dus met een functionele applicatie die niet onderdoet voor de normale windows applicatie bijvoorbeeld gemaakt met delphi. Gui reageert snel, code functies worden normaal uitgevoerd, ik heb geen bugs in swing kunnen ontdekken, MV concept is erg handig. Nadat je bekend bent met swing heb je zo een gui in elkaar zitten. De code is erg "schoon" (dat komt waarschijnlijk omdat de tabs aparte jpanels zijn die in aparte classes zitten). Bijvoorbeeld de tab Preset bestaat uit classe Preset (M) en de PresetPanel (V), mooi gescheiden via het MVC principe, ook erg handig als je de applicatie wil converteren naar webapplicatie, je hoeft dan in principe alleen maar de View te veranderen.
Maar waar ik heen wil, je hoort vaak negatieve verhalen over de java gui combinatie bijvoorbeeld swing, maar het is mij in deze testcase erg goed bevallen.
Ik heb overigens gebruik gemaakt van jdk1.4.1 en een snelle computer (2ghz processort, 512 mb ram). Ik kan er wel van uitgaan dat ik dit over een jaar of ander half (als het uiteindelijke systeem klaar is) als minimum systeem kan eisen.
Ik begrijp dat java swing niet bedoeld is voor kleine utilities zoals een cpu watcher, du meter, een explorer vervanger, enzovoorts, omdat deze programma's sterk afhankelijk zijn van het OS en als je dat wilt dan moet je niet bij java zijn. Maar bij normale applicaties die redelijk onafhankelijk zijn van het OS is java (swing) bijna perfect.
Hoe denken jullie hierover?
Een aantal screenshots om te laten zien dat de gui niet onderdoet voor de normale gui van programma's:


