Toon posts:

[Java] Choice/JComboBox met extra waarde

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo mede tweakers,
Ik wil een Java component (choice of jcombobox), maar dan een extra waarde erbij. Er moet een naam worden afgebeeld, maar met een ID erbij houden.
Bijv :
myCombobox.addItem("naam",id);

Ik kan wel een nieuw component afleiden van een van die, maar dan array erbij. Maar daar in kan ik niet zo iedere keer een waarde bij zettten.

Heeft iemand hier een idee voor, of de code van het standaard component, zodat ik de source daarvan kan afleiden.

alvast bedankt

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:11
Ik kan geen Java, maar in Delphi heb je bv:
code:
1
TComboBox.Items.AddObject(S : string; Object : TObject);

Ook in C# kan heb je een een DataSource property en in combinatie met de DisplayMember en ValueMember properties kan je soortgelijke dingen doen.

Is er in de Java Help echt niets terug te vidnen?

https://fgheysels.github.io/


Verwijderd

Topicstarter
Dat is nou juist het probleem.
Voorheen programmeerde ik het meeste in Delphi.
En daar heb je in je combobox een String list en een value list.

En om het helemaal makkelijk te maken een DBcombobox.

Maar in Java kan ik er alleen string in zetten, die dan ook in het lijstje komen. En kan index opvragen, van een item in de lijst.

Maar ik wil dus een naampje erin zetten, en daar naast een ID. En dat kan niet zo 123

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Bij JCombobox wordt gewoon een object toegevoegd en daar de toString() op invoked.

Je kunt dus je id in het object opslaan :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Je wilt dat iemand een naam en een id in die combobox ziet? Of je wilt in de combobox een 'object' zetten, en daar alleen een veld van laten zien?

in het eerste geval moet je hier eens kijken:
http://albelsoftware.8m.com/downloads/java/Hashtable/code.htm

voor het 2e moet je even kijken bij een ComboboxModel.

tip: kijk eens op http://www.jars.com
hier staan vaak leuke componentjes.. ik zal zo nog even een super link erbij plaatsen voor super home made componentjes (moet eerst ff dat ding zoeken).

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
In ieder geval zal je deze twee waarden moeten 'inpakken' in 1 klasse. Dat is niet alleen noodzakelijk voor een combobox, maar ook is het voor de rest van je applicatie best een goed idee.

Daarna moet je 2 waarden weergeven in de JComboBox. Dit kan snel en simpel door toString een string met beide waarden op te laten leveren, maar dat zal niet voor een fraai resultaat zorgen. Beter kan je een ListCellRenderer schrijven die de objecten die je in de JComboBox hebt zitten rendered naar een presentatie. Dit is een buitengewoon krachtig en fraai systeem.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
ik heb het nu opgelost, ben inmiddels thuis.

Ik heb een klasse afgeleid van de JCombobox
en een array erbij van integers.

En natuurlijk een functie addItem, waarbij je 2 waarden in moet stoppen.

En iedere keer als je dat doet, maakt die ff een nieuwe array (1 langer dan de vorige), en stopt die weer terug in de "private" array van de klasse.

Dis is misschien niet de mooiste en beste manieer, maar het werkt (en is maar voor in een school opdrachtje)

en oja,
het was niet de bedoeling dat je de tweede waarde zag in de combobox, alleen dat je die kon opvragen. maar goed.

Toch bedankt

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Op woensdag 05 juni 2002 20:14 schreef bojo het volgende:
[...]
Tja ik zie het OO plaatje hierbij echt niet! Dat hoort toch bij dat item? Dan hoort het toch ook in hetzelfde object te zitten :?

Verwijderd

Topicstarter
Ja, dat zit het ook.

Misschien niet helemaal duidelijk uitgelegt. Maar ik het er een array van integer bij gemaakt, die zitten dus mijn eigen gemaakt combobox.

Maar ze zijn niet te zien op het formulier ofzo, zijn alleen opvraagbaar.

kan nu dus uit mijn db halen
Naam - ID
Bjorn - 1
Jan - 2
Bert - 3

En in de combobox zie je alleen de namen, maar de ID's zijn opvraagbaar.

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Maar is dat ID nou gekoppeld aan de naam. Dus bijvoorbeeld Jan heeft altijd een 1, piet altijd een twee oid?

Als dat zo is, is het echt brak OO zo :)

Verwijderd

Topicstarter
Is het zo erg dan ??

Ik vond het wel een aardige oplossing.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Op woensdag 05 juni 2002 21:30 schreef bojo het volgende:
Is het zo erg dan ??

Ik vond het wel een aardige oplossing.
het is inderdaad een erugh brakke oplossing (als ik je docent was dan keurde ik het af). Je kan veel beter een object aanmaken waarin alle info staat.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Persoon{
   private String _voornaam;
   private Stirng _achternaam;
   private int _id;

   ..constructor

   ..getters en setters..

   public String toString(){
     return _voornaam+" "+_achternaam;
   }
}

Als je nu een persoon in je combobox plaatst dan wordt van dat object toString aangeroepen en dan krijg je dus in je combobox 'Alarm Nummer' te zien.

[edit]
Ik vind het nog steeds 'vreemd' dat mensen nu al met databases bezig zijn en gui, als ze de basis kennis van oo programmeren missen. Dit moet je niet persoonlijk opvatten bojo, maar dit zie ik dus heel veel bij beginnende it studenten en ik erger me er behoorlijk aan.

Verwijderd

Topicstarter
Ah.....
begin het te snappen.
Nu kan is dus ook de ID opvragen, uit die persoon.
<combobox>.getSelectedObjects(<combobox>.getSelectedIndex()).getID()

Bedankt

Maar ff iets anders,
ik vind Java een leuke taal om misschien iets meer in te doen. En wat we op school gehad hebben is ook niet super (de standaard awt componenten en klein beetje database connectiviy).
Maar ik wil nu iets meer, weten jullie misschien een leuk boekje daarvoor. Ik wil een beetje leuke GUI's maken en beetje met een database spelen. En als dat er een beetje in zit, een keer beginnen met een beetje client/server.
Weten jullie hier een goed boek voor ?

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
bojo: Maar ik wil nu iets meer. Weten jullie hier een goed boek voor ?
Boeken over Java bibliotheken zijn in sommige gevallen erg nuttig, maar soms bevatten ze ook maar bar weinig inhoud omdat ze snel vervallen in het beschrijven van de API. Bekijk dus even goed of een boek iets toevoegd ten opzichte van de API documentatie en artikelen op het web.

Zelf heb ik eigenlijk vrijwel geen enkel boek over Java bibliotheken. Als je elke week een kijkje neemt op de volgende sites en de artikelen doorneemt, kan je elke week leuke en gevarieerde dingen leren :) .

http://www.javaworld.com
http://www.java.ibm.com

Verder is uiteraard de Java Tutorial een uitermate goede bron en zelfs in zijn geheel te downloaden voor offline gebruik. Dit is echt een schat aan goede informatie, waaraan je eigenlijk voor vrijwel alle bibliotheken als Swing, RMI en JDBC wel genoeg hebt :) .

Op de Java Developer Connection zijn regelmatig hoofdstukken van boeken te downloaden geweest. Ook kan je alle artikelen van het verleden nakijken (uiteraard ook op Javaworld en IBM) en kan je je aanmelden voor de TechTips van de developer connection.

Kortom: van een beetje rondhangen op het web kan je een heleboel leren, wellicht zelfs meer dan van 1 groot boek :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Op http://www.javalobby.org en op http://www.theserverside.com zijn trouwens gratis boeken te downloaden als je lid bent (aanmelding is gratis uiteraard).

Op Javalobby is nu de "JDK 1.4 Tutorial" te downloaden.
Verder is "Core Servlets and JavaServer Pages" en "CodeNotes for J2EE" beschikbaar.

Op TheServerSide kan je "Mastering EJB II" en "EJB Design Patterns" vinden.

Enjoy ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Voor introducties:
http://developer.java.sun.com/developer/onlineTraining

Dit gebruik ik zelf ook regelmatig als ik wil weten wat een bepaalde techniek inhoud.

en anders moet je even op mijn site rondstruinen, daar staan ook een hele lading online boeken ed.
Pagina: 1