Exception in thread "JavaFX Application Thread"

Résolu/Fermé
moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 - 12 juil. 2015 à 14:08
greg6614 Messages postés 592 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 3 juin 2017 - 10 août 2015 à 03:33
Bonjour,
J'ai une comboBox que je remplie avec des splitPane (pour avoir des icons devant les items). Tout se déroule correctement jusqu'au moment ou je click sur un item...
J'obtiens alors une exception: Exception in thread "JavaFX Application Thread" java.lang.NullPointerException etc.
Ci-dessous le code en espérant que quelqu'un ait déjà eu le problème (et l'ait corrigé!):

//comboBox
 
ComboBox<SplitPane> myComboBox = new ComboBox<SplitPane>();
myComboBox.setLayoutX(491.0);
myComboBox.setLayoutY(382.0);
myComboBox.setPrefWidth(176.5);
 
 
//liste d'items  (ComBoxItemPerso est une classe avec des variables et les propriétés qui vont avec)
//une variable "nomItem" par exemple "1" ou "2" etc
//une variable "urlIcon" par exemple "application/1.png" etc.
 
ObservableList<ComBoxItemPerso> options = FXCollections.observableArrayList(new ComBoxItemPerso("1", "application/1.png"), new ComBoxItemPerso("2", "application/2.png"), new ComBoxItemPerso("3", "application/3.png"));	
SplitPane splitItem;
Label rightLabel;		
ImageView leftImage;
 
for(ComBoxItemPerso cIP: options)
{
	splitItem = new SplitPane();
	rightLabel = new Label();
	leftImage = new ImageView();
 
	splitItem.setOrientation(Orientation.HORIZONTAL);
	splitItem.setPrefHeight(25);
 
	rightLabel.setText(cIP.getNomItem());                             //propriété qui récupère le nom de l'item (classe ComBoxItemPerso)
	rightLabel.setOnMousePressed(this::itemClickEvent);
	leftImage.setImage(new Image(cIP.getUrlIcon()));	        //propriété qui récupère l'url de l'icon de l'item (classe ComBoxItemPerso)			
	splitItem.getItems().addAll(leftImage, rightLabel);
	myComboBox.getItems().add(splitItem);
}
 
root.getChildren().add(myComboBox);           //Group root = FXMLLoader...
 
 
//Evènement
 
protected void itemClickEvent(MouseEvent event)
{		
	Label l = (Label)event.getSource();
        //println(...); //fonctionne très bien	
	detailsTextField.setText(l.getText());	//exception ic!!!
}


Merci d'avance!
Bon week-end!



--

2 réponses

greg6614 Messages postés 592 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 3 juin 2017 107
Modifié par greg6614 le 6/08/2015 à 03:33
Hello,

Ton objet Label est null, surement un probléme de cast, essai ceci :

protected void itemClickEvent(MouseEvent event)
 {  
  String l = event.getSource().toString();
  detailsTextField.setText(l);
 }


En espérant t'avoir aider
Greg
1