Toon posts:

[Java] Choice items uit file halen en ItemListers

Pagina: 1
Acties:
  • 45 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik zit met een klein probleempje, dat wel eens een groot zou kunnen worden.

Om mijn klein Java programmaatje gemakkelijk te kunnen aanpassen laat ik de items van een Choice list uit een bestand lezen en voeg dat toe aan het lijstje met een lus en "destinationChoice.addItem([string uit file]);" erin (even niet op de syntax letten).

Het probleem is dat in dat bestand ook een aantal parameters staan waar berekeningen mee gemaakt worden.
Hoe kan ik er nu voor zorgen dat wanneer iemand een Bestemming kiest uit dan choice lijstje, er automatisch parameters ingevuld kunnen worden in een textfield?

Met events gaat dat niet goed lukken: 't zijn er veel en als er in dat bestand een bestemming toegevoegd wordt, kan ik de source code weer fijn gaan aanpassen.
Dat is zottenwerk en niet effectief. Trouwens, als een gebruiker de bestemmingen gaat editen in dat bestand, kan die persoon onmogelijk weten dat de boel dan niet meer draait.

Is er een manier om dit op te lossen, en alsnog een Choice lijst te gebruiken?

TIA

Verwijderd

Topicstarter
Heeft niemand een idee over dit?

  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

Snap ik het goed als je items wilt laden in een Choice en daarna moet het geselecteerde item weer een aantal parameters laden?

Zolang je je bestand een beetje slim indeelt (ik noem eens wat: met [CHOICES] ... [/CHOICES] en [PARAMETERS] ... [/PARAMETERS]) kun je alle choices en parameters toch gewoon opzoeken in de file en dan laden?
als er in dat bestand een bestemming toegevoegd wordt, kan ik de source code weer fijn gaan aanpassen
Dat gaat fout als je een vast aantal bestemmingen inleest maar niet als je bijvoorbeeld met begin en afsluit tags gaat werken, met daartussen een variabel aantal bestemmingen ('t is maar een voorbeeldje).

Dat gebruikers je bestand gaan wijzigen moet je niet vanuit gaan, en anders sla je het bestand toch in niet leesbare tekst op?

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


Verwijderd

Topicstarter
Ik begrijp eigenlijk niet goed wat je bedoelt.

Hier is een simpel stukje code dat een letter in een Choice zet:

destChoice = new Choice();
destChoice.addItem("Choose an Value");
//Read file
try
{
File fFile = new File("attacks.dat");
try
{
frFileReader = new FileReader(fFile);
}
catch(FileNotFoundException fnf)
{
System.out.println("Attack file not found");
}
digitInt = frFileReader.read();
while(digitInt != -1)
{
destChoice.addItem(""+(char)digitInt);
digitInt = frFileReader.read();
}
frFileReader.close();
}
catch(IOException ioe)
{
System.out.println("IO-Error: "+ioe);
}

Verder in het programma is dat een inner class voor de ItemListener:


ublic class ChoiceActionHandler implements ItemListener
{
public void itemStateChanged(ItemEvent ie)
{
if(ie.getItem() == "Choose a Value")
{
}
else if(ie.getItem() == "Berlin")
{
stab=(float)1.5;
}
else if(ie.getItem() == "London")
{
stab=(float)1.0;
}
else if(ie.getItem() == "Brussels")
{
stab=(float)0.0;
}
...

En de listeners:

ChoiceActionHandler cah = new ChoiceActionHandler();
destChoice.addItemListener(cah);

Dus, ik ben verplicht om die ChoiceActionHandler hard te coderen en iedere mijn source aan te passen als dat nog is :/
Stel dat ik nu mijn programma wil uitbreiden met een dialog box om die ene file te beheren, dan zit ik vast met ChoiceActionHandler?

Aiaiai... ik krijg hier hoofdpijn van |:(
Dan maar hard coderen zeker?

  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

ik zou ff een stukje [code] tags om je code plaatsen hier, dan ga ik het lezen, ok? :)

Vooruit, als je die getallen stab in het IF-block nu eens opslaat samen met de Choices? Waarom zou je de Choices niet in je programma opnemen, maar de data die bij een Choice hoort wel? Dan creeer je automatisch een situatie waar als je in het bestand iets toevoegd, ook een bijbehorende wijziging in je sourcecode moet komen te staan => dat is niet handig, daarvoor had je toch juist dat bestand gemaakt?

Kortom, die Choice lijst kun je wel gebruiken, maar zet dan de waarden die bij een item horen ook in het bestand zodat je in een keer de waarden van een bepaald item uit kunt lezen, en later ook gemakkelijk een item kunt toevoegen of wijzigen in het data-bestand.

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


Verwijderd

Topicstarter
Ok ^^ Dan ga ik dat eens proberen.
Bedankt

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
XML is ook heel makkelijk.
Moet je een JAXP implementatie voor hebben.

Maar ik neem aan dat het het op deze basic manier doet om de boel onder de knie te krijgen.

  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

Op zondag 14 april 2002 17:17 schreef The - DDD het volgende:
XML is ook heel makkelijk.
Moet je een JAXP implementatie voor hebben.
...
Dat was mijn idee ook, vandaar ook het stukje over tags in mijn eerste post.

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


Verwijderd

Topicstarter
Ik ken nog geen XML :P
Zijn daar goede online tutorials voor?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Doet iets met Cloud (MS/IBM)

Pagina: 1

Dit topic is gesloten.