Toon posts:

[Java] opvullen van een Jcombobox

Pagina: 1
Acties:

Verwijderd

Topicstarter
hello
ik heb een vraagje ik heb in mijn programma in mijn view klasse een jcombobox die moet opgevuld worden wanneer die frame verschijnt.

de data komt uit mijn databank, ik heb die code geschreven in mijn windowopend event al ze effe posten

public class ActorScreenWindowEvent extends WindowAdapter {
private ActorScreen actorScreen;

public ActorScreenWindowEvent(ActorScreen actorScreen){
this.actorScreen = actorScreen;
}

public void windowOpened(WindowEvent e){
ArrayList actors = null;
ArrayList names = null;
try{ actors = DataReader.getActors(); }catch(Exception ex){}
for(int i=0; i<actors.size(); i++){
FilmCrew actor = (FilmCrew) actors.get(i);
names.add(actor.getFirstName() + " " + actor.getName());
}
actorScreen.setPersonalComboBoxModel(names);
}
}

dit is dus de event klasse van mijn frame, DataReader is mijn Factory waaruit de verschillende actors komen.

wanneer ik dit prog probeer te runnen krijg ik altijd een error.

kan er me iemand helpen
thx

  • nxt
  • Registratie: November 2001
  • Laatst online: 04-02 09:36

nxt

wat voor error krijg je dan?

verder nog wat opmerkingen over je code

je vult de variabele actors in een try / catch block maar doet niets met de exception
en je gaat na de catch er wel vanuit dat alles goedgegaan is. Ik raad je in elk geval aan om de stukjes code waar je de variabele actor gebruikt ook binnen de scope van de try/catch te zetten.

en zet het de volgende keer graag even tussen [ code] en [ /code] tags

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 10-05 16:41

Nick_S

++?????++ Out of Cheese Error

Als we de error hebben. Krijg je een compile error of runtime error? Post hier even de output van je compileren of een stacktrace als het een runtime error is.

Probeer je code even tussen code-tags te zetten [ code ] [ /code ] zonder spaties. Geef ook aan als je een output of stacktrace post, dat de lijnnummers hierin vaak niet overeenkomen met de lijnnummers van de stukken code die je post. Geef dus goed aan op welke regel het fout gaat!

edit:
En te laat...

[ Voor 4% gewijzigd door Nick_S op 05-02-2005 19:39 ]

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


  • Splatter
  • Registratie: December 2000
  • Laatst online: 26-11-2021
code:
1
2
3
ArrayList names = null;
..
names.add(actor.getFirstName() + " " + actor.getName());


names is nog niet geinitialiseerd.
Dat is iig fout.

[ Voor 10% gewijzigd door Splatter op 05-02-2005 19:46 ]


  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 10-05 16:41

Nick_S

++?????++ Out of Cheese Error

Dat kan inderdaad kloppen. Je namen variabele verwijst naar een null pointer en niet naar een instantie van een ArrayList.

Dat doe je zo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 public void windowOpened(WindowEvent e) {
ArrayList actors = null;
ArrayList names = null;
try{ 
actors = DataReader.getActors();

for(int i=0; i<actors.size(); i++){
FilmCrew actor = (FilmCrew) actors.get(i);
names.add(actor.getFirstName() + " " + actor.getName());
}
}catch(Exception ex){ ex.printStacktrace();}
actorScreen.setPersonalComboBoxModel(names);
}
}

Zet die catch dus aan het einde van het vullen van de namen. Mocht er nu een probleem zijn in je getActors(), dan gaat ie niet verder met het vullen van namen en print hij deze error.

[ Voor 68% gewijzigd door Nick_S op 05-02-2005 20:27 . Reden: Sorry, zat te slapen. ]

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


Verwijderd

Topicstarter
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


dat is de error die ik krijg, nu de throws clausule gebruik ik omdat ik een klasse heb gemaakt die speciaal alle error' s opvangt thx alot

Verwijderd

Topicstarter
met het zetten van die new Arraylist ben ik die error kwijt maar mijn combobox wordt nu niet opgevuld, hoe komt dat dan ?

Verwijderd

als eerste zou ik kijken of er uberhaubt wel iets op wordt gehaald uit DataReader.getActors();
dus bijvoorbeeld na die regel effe kijken met
System.out.println( actors.size() );

als er toch blijkt dat er wat in zit, zit probleem denk ik in
actorScreen.setPersonalComboBoxModel(names);
dus zou ik effe kijken wat er in die methode gebeurt

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 10-05 16:41

Nick_S

++?????++ Out of Cheese Error

Met het geven van de stacktrace ben je juist vergeten om de eerste regel mee te geven. En dat is vaak de regel, waar het misgaat.

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


Verwijderd

Topicstarter
Exception in thread "main" java.sql.SQLException: [Microsoft][ODBC-stuurprogrammabeheer] Ongeldige descriptorindex
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLColAttributes(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getColAttribute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getColumnType(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getMaxCharLen(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
at world.killah.yadd.data.Result.getColumnString(Result.java:54)
at world.killah.yadd.data.DBFilmCrew.main(DBFilmCrew.java:72)


het zat inderdaad in het ophalen van mijn actors nu krijg ik dit waar ik niet aan uitgeraak

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 11:55

Robtimus

me Robtimus no like you

Hoe roep je die getString op je resultset aan? Gebruik je wel de juiste kolomnaam / -index? Is het wel een string dat je ophaalt?

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Verwijderd

Topicstarter
sorry zie het probleem had een postfix increment gebruikt in plaats van een prefix sorry
Pagina: 1