Toon posts:

JAVA - JButton(Icon icon)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dag allemaal,


Ik wil dus verschillende jbutton maken met een icoon op deze iconen zijn afkomstig van verschillende gifjes. Hoe doe ik dit best, ik heb al gekeken in de java api's van sun 1.4.1, maar wat ik vind werkt niet echt.


Alvast bedankt.

  • DinX
  • Registratie: Februari 2002
  • Laatst online: 22-08 20:26

DinX

Motormuis

je zou de gifjes kunnen nummeren.
Dan de JButtons als array maken. En die met een for-lusje aanmaken en i als nummer voor de gifs gebruiken

Ik zie dat je graduaat informatica bezig bent ... met een beetje kans zit je op de HL in Diepenbeek, dan kan ik je de oplossing wel eens online zetten of doormailen. Die oefening hebben we namelijk in de les gezien ;)

Marokko 2015: Route
Sat Tracker: SpotWalla
Blog: Gone for a ride


Verwijderd

Topicstarter
ik dacht eerst iconen aan te maken met
icon1 = new ImageIcon("images/1.gif")

knop1 = new JButton(Icon icon1)

Creates a button with an icon.

Dit dan idd in een for lusje zetten, maar ik heb dus al een schuifpuzzel gemaakt, nu zou ik dus gewoon die iconen op de bestaande buttons willen plaatsen zonder al te veel code te moeten veranderen.


ps. ik doe idd graduaat infor.

[ Voor 29% gewijzigd door Verwijderd op 11-05-2003 16:41 ]


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
Graduaat Informatica en dit niet kunnen oplossen, ben ik blij dat ik nooit IT heb gestudeert?

ArrayList tButtons = new ArrayList();

for (...) tButtons.add(new JButton(new ImageIcon("image"+counter".gif")));

Verwijderd

Topicstarter
dat heb ik al de array opvullen en weergeven in een GridLayout is allemaal geen probleem. Ik moet bestaande code aanpassen zodat er icons op verschijnen. Ik denk nu juist aan
JButton( icon, string), want op alle buttons staat er nu 1 tm 15, 16 is zwart. Dus dan kan ik de strings laten staan + een icon er op zetten. Zo kan het programma blijven werken met de strings.

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
apologies...

ja een JButton heeft vele constructors en helaas geen 'default' zodat eenvoudig zou zijn. (typisch Swing) - je kunt je String eventueel op "" zetten dan vult de icon alles - ook setIcon/setText zijn nuttig...

Verwijderd

Topicstarter
aha, setIcon dat wist ik nog niet, bedankt! ff proberen

  • esf
  • Registratie: Juni 2002
  • Laatst online: 11-03 14:06

esf

Meestal helpt het wel de java API door te lezen en voor het desbetreffende component naar de aanwezige methoden te kijken, om vervolgens de methoden die je probleem _mogelijk_ op kunnen lossen nader te bekijken. Op die manier was het vast ook niet moeilijk geweest om op de methode setIcon te komen ;)

The hardest thing in the world to understand is the income tax. - Albert Einstein


Verwijderd

Topicstarter
neen , maar wel overgekeken blijkbaar. Nog maar bezig van dit jaar met java en ik ben nog niet echt vertrouwd met de java API.

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
Verwijderd schreef op 13 May 2003 @ 15:26:
Nog maar bezig van dit jaar met java en ik ben nog niet echt vertrouwd met de java API.
Nou ik ben nog maar 3 maand bezig :) hoor. IVM Java Swing ik raad je aan om een paar boeken te 'vinden'. (Java Swing 2nd Edition) want de API Docs zijn idd niet echt lekker om iets te vinden (en zijn meestal ook niet duidelijk om mee te beginnen)

  • reskobon
  • Registratie: November 2001
  • Laatst online: 14-08 22:26
hobbit_be schreef op 13 May 2003 @ 16:50:
[...]


Nou ik ben nog maar 3 maand bezig :) hoor. IVM Java Swing ik raad je aan om een paar boeken te 'vinden'. (Java Swing 2nd Edition) want de API Docs zijn idd niet echt lekker om iets te vinden (en zijn meestal ook niet duidelijk om mee te beginnen)
Ben ik niet met je eens. Het zoeken naar classes en methodes gaat in Api's stukken sneller dan dat ik een boek moet gaan doorspitten. Voor voorbeelden of bepaalde toepassingen is juist een boek weer handig!

Leeg


Verwijderd

Topicstarter
hobbit_be, ken jij al andere talen? Ben je al langer programmeur? Of ben je nog student?

  • esf
  • Registratie: Juni 2002
  • Laatst online: 11-03 14:06

esf

hobbit_be schreef op 13 May 2003 @ 16:50:
[...]


Nou ik ben nog maar 3 maand bezig :) hoor. IVM Java Swing ik raad je aan om een paar boeken te 'vinden'. (Java Swing 2nd Edition) want de API Docs zijn idd niet echt lekker om iets te vinden (en zijn meestal ook niet duidelijk om mee te beginnen)
Ik raad je echt aan om die java API onder de knie te krijgen. In het begin lijkt het lastig, maar als je er even mee overweg kan, dan kan je ineens (bijna) alles met java wat je maar wilt. (mits java het ondersteunt natuurlijk :) )

The hardest thing in the world to understand is the income tax. - Albert Einstein


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
robje: heb jij ooit al met Swing gewerkt? Dan weet je dat die zo ON-uniform is dat je met de API docs helemaal niets aan kunt.
esf: Ik had het over Swing alleen, maar ook in het algemeen zijn de JavaDoc toestanden niet echt fantastisch (wel om te kijken wat ie nu doet) maar niet als 'Guide' om een probleem op te lossen. Iedereen kan een puntje afzuigen van de online PHP documentation die is Schitterend...

'alles wat je maar wil' - ok geef me een ietwat deftige UI toolkit dan spreken we nog eens :)
Java is leuk (vandaag nog leuk een progje voor de Linux box in windows gemaakt) voor bepaalde zaken, net zoals er voor verschillende problemen het beste een bepaalde taal gebruikt kan worden. 1 Tool voor alles bestaat niet, en zal IMHO ooit nooit komen (stagnation is death!)

blastboy:ja hoor Assembler/C(++)/Pascal/Basic/'Lingo'/'Actionscript'/en nog een heel resem anderes, net zoals de meeste mensen hier op P&W. (als je er eentje ken is het leren van andere meestal niet zo moeilijk)

  • reskobon
  • Registratie: November 2001
  • Laatst online: 14-08 22:26
Ok discussie heeft niet echt meer te maken met de topictitel maar ja.
Ik werk inderdaad ook met Swing en ben altijd nog tevreden geweest met de Javadocs. Het voordeel van php.net is denk dat je daar naast functies ook toepassingen terug kan vinden. Javadocs zijn daar niet voor bedoeld maar zijn meer een schematische en textuele weergave van alle packages met classes en methods. Maar goed als je maar kan vinden wat je nodig hebt en waar je dat dan vandaan haalt is niet relevant :)

Leeg


Verwijderd

hobbit_be: je hebt al gezegd dat je nog maar 3 maanden met Java werkt dus dat verklaart wel een beetje dat je dus nog niets begrijpt van Swing. Dat is echter geen reden om even te zeggen dat Swing onuniform in elkaar zit.
Swing is enorm flexibel en zowat altijd gebaseerd op goed uitgedacht OOP patronen. Als je die patronen niet kent zal je vast denken dat het maar vaag is maar dat is niet de fout van Swing. Als je dan als voorbeeld van een goeie online documentatie PHP.net aanhaalt laat je weer blijken dat je echt nog niet klaar bent voor het OOP denken. Eenmaal het zover is zal je wel beter aan Swing aan uit kunnen.
En JButton heeft wel een default constructor (heb je de API echt wel bekeken?).

  • reskobon
  • Registratie: November 2001
  • Laatst online: 14-08 22:26
heb je gelijk is Somey! Je moet namelijk even in objecten denken en dan snap je ook de Api's ineens. Dat vermelde ik al in mijn post, je gaat daardoor de structuur zien van de verschillende klassen en daardoor snap je ook de werking.

Ik programmeer nu bijna 1,5 jaar Java en moet zeggen dat ik toch echt een OO fan ben geworden. Ik ben me de laatste tijd op school aan het verdiepen in logische en functionele programmeertalen en das ook weer heel wat anders. :)

Leeg


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
Somey: Robje:

Nou leuk dat jullie Java leuk vinden, zelf vind ik het ook leuk. Maar Swing is niet leuk, het is 'slecht'. Kijk maar eens naar SWT.

Overigens voel ik me een beetje gekrent, omdat ik maar 3 maanden bezig ben. Ik programmeer al meer dan 10 jaar. En als een GUI Toolkit meer dan 2 weken nodig heeft om voort te kunnen wil dat al erg veel zeggen.

Niks van begrijpt vind ik ook eerlijk gezegd uit de duim gezogen. Ons projects heeft een volledige XML->Swing interface builder, een werkende! HTML editor in Swing (dus met Insertable images (overal) (die aanklikbaar zijn), met anchors alla Dreamweaver. Zoek het maar eens op het net, zul je niet vinden. Swing 'snap' ik ondertussen echt wel en toch moet ik nog dagelijks bij elk nieuw component (nu al geen meer, want heb ze allemaal nodig) de api openslagen omdat deze component weer anders in elkaar steekt. En zeg nou niet dat het allemaal MVC is want dat ie het niet. De hele swing 'boel' is in elkaar geflanst boven op awt (zo mogelijk nog slechter) - het is echt een super beta (vandaar de javax nam ik aan) waar Sun echt niet mee mag uitpakken. Gelukkig hebben we het kunnen wrappen zodat alles uniform is. en we alles in XML kunnen doen. Maar dat heeft heel erg lang geduurt: waarom omdat de code vol met if, cases (ach ik denk nog terug aan de Border's nachtmerrie) - en er geen duidelijk patroon is zit == slecht design.

Een voorbeeldje daarvan is de JButton constructor nachtmerrie:

je hebt:

JB(icon)
JB(icon, text)
JB(text)
...

Leuk want Java kan geen default values aan in een constructors.

maar een andere component heeft bijvoorbeeld

AC(icon, text, yaga)
waarvan een of meerdere NULL mogen zijn om. JButton heeft die niet. Dat is nou een typsich geval waar ik van gruwel.

Oh Swing+Threads ook heel buggy. 1.4.2b Java is daar al 100x beter in (een hele resem bugs die we hadden zijn plotseling 'weg') .

Het kan aan mij liggen op jullie hebben nog nooit een complicated full blown swing app gemaakt of jullie zijn een pak slimmer. AL de boeken (ik heb er 6, allemaal swing klassiekers, waren bloednodig al was het maar om onder elke component een stuk of 10 hints en bugs te melden, maar die staan mooi niet in de DOC hoor)..

OO is goed(heel goed, niet heilig), Swing niet. Java (1.4) OK. C++ subliem.

[ Voor 3% gewijzigd door hobbit_be op 15-05-2003 02:57 ]


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
hobbit_be schreef op 15 May 2003 @ 02:55:
En zeg nou niet dat het allemaal MVC is want dat ie het niet.
Nee, Swing is gebaseerd op het Swing-MVC model. Da's met een model en controler in elkaar geïntegreerd geloof ik. :)
het is echt een super beta (vandaar de javax nam ik aan) waar Sun echt niet mee mag uitpakken.
Javax is omdat het eerst een uitbreiding was van netscape die niet in de standaard package zat :) Nu is Swing echt wel stable hoor :)
Een voorbeeldje daarvan is de JButton constructor nachtmerrie:
Flauw voorbeeld. Constructors kun je niet afdwingen dmv polymorphie dus absoluut eenduidig krijg je die nooit :)
Leuk want Java kan geen default values aan in een constructors.
Java kent sowieso geen default variabelen. Echter dat wordt omzeild met de method-overload :)
OO is goed(heel goed, niet heilig), Swing niet. Java (1.4) OK. C++ subliem.
:Z Maakt het verschil van grafische lib C++ opeens subliem?

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
...Javax is omdat het eerst een uitbreiding was van netscape die niet in de standaard package zat :) Nu is Swing echt wel stable hoor :)...

lees maar eens Java Swing ed2. het aantal bugs is astonishing...

... Flauw voorbeeld. Constructors kun je niet afdwingen dmv polymorphie dus absoluut eenduidig krijg je die nooit :)...

tuurlijk wel. niet door polymorphie zoals je zelf zegt maar wel een eenduidige approach tot het gebruik van contructies. Het is heel duidelijk dat Swing door verschillende mensen in elkaar is gestoken zonder al te te veel overleg (ie er is wel heel wat he, maar schrijf maar eens een dynamic Swing creation spul dan valt het echt op). Is echt degoutant hoe alles naast elkaar wordt gebruikt. 'North' als constante is gedefineerd als "1", nog een getal, "NORTH", "north" allemaal in andere classen dit kan echt niet voor een professionele API.

...Java kent sowieso geen default variabelen. Echter dat wordt omzeild met de method-overload :)...

dat weet ik wel, maar hoe je het probleem 'oplost' moet evenwel consistent zijn.
(eg met NULL werken of niet, IMHO MET je kunt nog altijd specifieke 'convienence' constructors toevoegen, of anders 'strict'. Geen mix want dan moet je de API niet 'leren' maar van buiten kennen. Een goede API is er eentje waar je na 4 voorbeelden al kunt voorspellen hoe je de volgende moet gebruiken. Dat is hier niet het geval.

...Maakt het verschil van grafische lib C++ opeens subliem?

Ik had het over de taal en OOp waar ik met iedereen wel over eens ben. (C++ heeft helemaal geen GT. Ik gaf de commentaar om aan te duiden dat er erg veel vragen over Swing zijn omdat:

a) inconsistente API
b) slechte doc

(vergeleken met de rest van de Java API, nou laat ik maar ophouden hier)

of krijgen jullie veel vragen over StringBuffer? :) (die laatste blijkt dan in Java 1.4.x buggy, nou niet buggy maar ze hebben wel de code verandered zodat bijna alle apps memory leaking die niet gezond zijn. het wordt opgelost in Tiger. Een code breken in een strcutuur die deel uitmaakt van de java.lang is gewoon belachelijk in een taal die al 10jaar oud is. Sun's tip: Don't reuse StringBuffers. )
Pagina: 1