Toon posts:

[JAVA]Database gegevens

Pagina: 1
Acties:

Verwijderd

Topicstarter
Halllo,

Ik ben op dit moment bezig met een java opdracht voor mn stage.

Hierin heb ik een aantal dropdown menu's/textfields/checkbox(groups)

Deze gegevens moeten een database in en er ook weer uit komen

Nu lukt het mij prima om de textfields er in en eruit te krijgen, ook lukt het mij om de dropdown menu's de database in te krijgen.

Het lukt mij echter niet om de dropdown selectie uit de database zo te krijgen dat in de dropdown de opgeslagen keuze geselecteerd wordt. Voorbeeld:

code:
1
2
3
4
Optie1
Optie2
Optie3 => geselecteerd
Optie4


Verder heb ik ook nog een probleem met het in de database krijgen van geselecteerde checkboxes. Ik heb groepen van 2-4 checkboxen, die elk een andere waarde hebben.

Hoe krijg ik deze de database in?

Zelf kom ik niet verder dan een waarde toewijzen zo snel als de checkbox aangeklikt wordt. Deze krijg ik vervolgens weer niet de database in :?

code:
1
2
OptionYes_Click
String ExistingCustomer = "yes"


Maar als ik dit zo doe dan krijg ik bij het uitvoeren van de query een error dat ie niet weer wat ExistingCustomer is. Hoe los ik dit op?

Ik hoop dat jullie mij met al deze vragen kunnen helpen want ik kom er echt niet uit.

Alvast bedankt :>

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15:26

Janoz

Moderator Devschuur®

!litemod

Geef eens wat voorbeeld code. Lees gelijk ook even P&W Beleid door.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
De checkboxes de database in is me al gelukt.

Dit heb ik gedaan door de isSelected() optie te gebruiken dus:

code:
1
2
3
if (radioYes.isSelected() == true) {
ExistingCustomer = "yes";
}


Ik weet niet precies welke code ik moet plaatsen, maar om de gegevens uit de database te laden gebruik ik de volgende query:

code:
1
2
Select *
From 1Header;


Vervolgens laad ik het een textfield in door:

code:
1
2
TextField.setDataSet(qryQuery);
TextField.setColumnName("CustomerName");


Nu wil ik hetzelfde dus doen met een dropdown menu.

Alleen dan dat het gegeven uit de database geselecteerd wordt in de dropdown.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15:26

Janoz

Moderator Devschuur®

!litemod

Je kunt toch gewoon iets als
Java:
1
2
3
if ("yes".equals(existingCustomer)){
  radioYes.setSelected(true);
}

Verder is het natuurlijk niet zo mooi om je variabele namen met een hoofdletter te beginnen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Janoz schreef op 03 december 2003 @ 11:30:
Je kunt toch gewoon iets als
Java:
1
2
3
if ("yes".equals(existingCustomer)){
  radioYes.setSelected(true);
}

Verder is het natuurlijk niet zo mooi om je variabele namen met een hoofdletter te beginnen.
Ach, de code achter het programma ziet men toch niet :)

En wat jij nu hebt is meer iets voor het gegevens uit de database halen en wat ik net deed was om het erin te stoppen ;)

Maar ik zal deze optie zeker in mn achterhoofd houden voor als we aan het laden gaan beginne :Y)

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
Als je een setSelected hebt, zal je waarschijnlijk ook wel een getSelected oid hebben?

https://fgheysels.github.io/


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15:26

Janoz

Moderator Devschuur®

!litemod

Verwijderd schreef op 03 december 2003 @ 11:34:
Ach, de code achter het programma ziet men toch niet :)
Dat doe je ook niet voor de gebruikers. In onze FAQ hebben we ook wel een stukje 'nette code' opgenomen. Nu is het misschien leesbaar, maar als je over een paar weken een verandering aanbrengt zal het toch een stuk lastiger gaan.

Misschien is het daarnaast ook handig om even de APIdocs erbij te pakken (javadoc. Is wel op java.sun.com te vinden). Daar kun je precies zien welke methoden elk object heeft. Een dropdown heeft voor zover ik weet namelijk gewoon functies als getSelectedIndex en/of Value. Hiermee zijn keurig de velden op te roepen en richting de DB te sturen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Dit qualifiseerd duidelijk voor de domste opmerking van het jaar! Misschien een idee :P

modbreak: hou het ontopic, en hou dergelijke statements maar voor jezelf.

[ Voor 39% gewijzigd door .oisyn op 03-12-2003 16:23 ]


Verwijderd

Topicstarter
Verwijderd schreef op 03 december 2003 @ 11:54:
Dit qualifiseerd duidelijk voor de domste opmerking van het jaar! Misschien een idee :P
/me is voor!!!

Verwijderd

Topicstarter
Janoz schreef op 03 december 2003 @ 11:38:
[...]

Dat doe je ook niet voor de gebruikers. In onze FAQ hebben we ook wel een stukje 'nette code' opgenomen. Nu is het misschien leesbaar, maar als je over een paar weken een verandering aanbrengt zal het toch een stuk lastiger gaan.

Misschien is het daarnaast ook handig om even de APIdocs erbij te pakken (javadoc. Is wel op java.sun.com te vinden). Daar kun je precies zien welke methoden elk object heeft. Een dropdown heeft voor zover ik weet namelijk gewoon functies als getSelectedIndex en/of Value. Hiermee zijn keurig de velden op te roepen en richting de DB te sturen.
De getSelectedIndex die werkt zover als ik weet alleen op integers en wij hebben Strings dus dit gaat volgens mij niet op.

Ook volgens java gaat het niet want hij geeft netjes een rood ribbeltje.

En Value heeft hij niet.

Alle andere dingen heb ik al opgelost. Dus dit is nog het enige probleem.

Even voor de duidelijkeheid:

Ik heb dropdownboxjes die gegevens de database in sturen (zie openingspost) en als ik ze weer uit de database wil halen dan wil ik graag de query behouden en alleen de ingevoerde optie geselecteerd hebben in de dropdown.

  • pgussow
  • Registratie: Maart 2003
  • Laatst online: 18-08-2025
Uit Javadoc:

setSelectedItem
public void setSelectedItem(Object anObject)Sets the selected item in the combo box display area to the object in the argument. If anObject is in the list, the display area shows anObject selected.
If anObject is not in the list and the combo box is uneditable, it will not change the current selection. For editable combo boxes, the selection will change to anObject.

If this constitutes a change in the selected item, ItemListeners added to the combo box will be notified with one or two ItemEvents. If there is a current selected item, an ItemEvent will be fired and the state change will be ItemEvent.DESELECTED. If anObject is in the list and is not currently selected then an ItemEvent will be fired and the state change will be ItemEvent.SELECTED.

ActionListeners added to the combo box will be notified with an ActionEvent when this method is called.


Parameters:
anObject - the list object to select; use null to clear the selection
Even simpeler gezegd:

Je add een paar values aan de combobox. Waarschijnlijk doe je dit 'simpel' en voeg je direct Strings toe aan de combobox.
Aan de setSelectedOption geef je dus gewoon de string mee die getoond moet worden. De combobox zal al zijn items afgaan en er een .equals(meegegeven object) op loslaten. die call true retouneerd, dan word de selectedIndex op die option gezet.

Het is toch wel een kwestie van de JavaDoc goed doorlezen hoor...

Verwijderd

Nog even een vraagje:

Ik heb de volgende code:

Java:
1
2
3
4
5
6
7
8
9
10
if ( txtExistingCustomer = "yes" ) {
  existingCustomerYes.setSelected(true);
}
if ( txtExistingCustomer = "no" ) {
  existingCustomerNo.setSelected(true);
}
if ( txtExistingCustomer = "unchecked" ) {
  existingCustomerYes.setSelected(false);
  existingCustomerNo.setSelected(false);
}


Nu gaat dit allemaal goed, totdat er een tweede gegeven ingeladen wordt uit de database. Als deze dus unchecked is dan blijft er een van de twee checkboxes checked. In plaats van dat ze allebei unchecked worden

Hoe kan dit? En hoe kan ik dit oplossen?

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Je hebt het wel fijn, maar compileren doet dat niet als je Java programmeert :P
Tip 2: Strings vergelijken doe je met equals() niet met ==, want anders test je op geheugenadressen.
Vraag1: Zijn muismatje en BlackSun één en dezelfde persoon?

[edit] Even wat meer subinfo: De reden dat het de eerste keer wel goed gaat, is omdat ze dan waarschijnlijk toegekend zijn met een default waarde. De VM is dan ook niet gek en verwijst gewoon alle objecten die dezelfe stringwaarde hebben naar hetzelfde object. Zodra je daarna een andere waarde in die variabele gaat stoppen komt er een ander geheugenadres in en zal de geheugenvergelijking niet meer opgaan.

[ Voor 37% gewijzigd door Glimi op 08-12-2003 17:00 ]


Verwijderd

Topicstarter
Glimi schreef op 08 december 2003 @ 16:51:
[...]
Je hebt het wel fijn, maar compileren doet dat niet als je Java programmeert :P
Tip 2: Strings vergelijken doe je met equals() niet met ==, want anders test je op geheugenadressen.
Vraag1: Zijn muismatje en BlackSun één en dezelfde persoon?

[edit] Even wat meer subinfo: De reden dat het de eerste keer wel goed gaat, is omdat ze dan waarschijnlijk toegekend zijn met een default waarde. De VM is dan ook niet gek en verwijst gewoon alle objecten die dezelfe stringwaarde hebben naar hetzelfde object. Zodra je daarna een andere waarde in die variabele gaat stoppen komt er een ander geheugenadres in en zal de geheugenvergelijking niet meer opgaan.
Antwoord 1: Nee, maar zitten wel bij elkaar op stage aan dezelfde opdracht te werken
Tip: er staat geen == in die code ;)

Wij hebben het even aan onze leraar gevraagd en het bleek te komen door de ButtonGroups die we aangemaakt hadden, want volgens Java moet er in een ButtonGroup altijd een selected waarde zijn :(

Maar dat is nu opgelost.

En de dropdownboxes gaan we oplossen met setSelectedIndex :)

  • Amras
  • Registratie: Januari 2003
  • Laatst online: 01-10-2025
Verwijderd schreef op 10 december 2003 @ 09:41:
[...]


Tip: er staat geen == in die code ;)
Ik zie het, wat dus helemaal vreemd is omdat je met een enkele = geen dingen kunt vergelijken in java. Je kent nu de waarde "yes" toe aan txtExistingCustomer, daarna 'no' en daarna 'unchecked'. Verder voert ie ook alle 3 de if's als ik het goed heb (wat dus nooit zou moeten kunnen in dit geval). Gebruik dus deze vergelijking in je if statement:

Java:
1
if(txtExistingCustomer.equals("yes"));


Dus ook geen == zoals al gezegd werd, daar vergelijk je dus geheugenadressen van objecten mee ;)

Verwijderd

Topicstarter
Amras schreef op 10 december 2003 @ 10:41:
[...]


Ik zie het, wat dus helemaal vreemd is omdat je met een enkele = geen dingen kunt vergelijken in java. Je kent nu de waarde "yes" toe aan txtExistingCustomer, daarna 'no' en daarna 'unchecked'. Verder voert ie ook alle 3 de if's als ik het goed heb (wat dus nooit zou moeten kunnen in dit geval). Gebruik dus deze vergelijking in je if statement:

Java:
1
if(txtExistingCustomer.equals("yes"));


Dus ook geen == zoals al gezegd werd, daar vergelijk je dus geheugenadressen van objecten mee ;)
zelf gebruik ik:
Java:
1
2
3
if (txtExistingCustomer.getText().equals( "yes") ) {
  statement
}


Maar die is volgens mij hetzelfde als die van jou :)

[ Voor 6% gewijzigd door Verwijderd op 10-12-2003 11:07 ]


  • Amras
  • Registratie: Januari 2003
  • Laatst online: 01-10-2025
Verwijderd schreef op 10 december 2003 @ 11:06:
[...]


zelf gebruik ik:
Java:
1
2
3
if (txtExistingCustomer.getText().equals( "yes") ) {
  statement
}


Maar die is volgens mij hetzelfde als die van jou :)
Mijn antwoord ging uit van de code die erboven stond, maar deze zal het idd beter doen ;)
Pagina: 1