2017-04-22 5 views
0

私はコンボボックスの下DOPときに私は、このエラーを受け取り、私は図書館でのJavaFXを使用JFoenix「JavaFXのアプリケーションスレッド」java.lang.IllegalArgumentExceptionが:引数の型の不一致

> Exception in thread "JavaFX Application Thread" 
> java.lang.IllegalArgumentException: argument type mismatch at 
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
> at java.lang.reflect.Method.invoke(Method.java:497)  at 
> sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71) at 
> sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
> at java.lang.reflect.Method.invoke(Method.java:497)  at 
> sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275) at 
> javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769)  at 
> javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657) 
> at 
> com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) 
> at 
> com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) 
> at 
> com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) 
> at 
> com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) 
> at 
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) 
> at 
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
> at 
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 
> at 
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
> at 
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 
> at 
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
> at 
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 
> at 
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
> at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) 
> at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at 
> javafx.event.Event.fireEvent(Event.java:198) at 
> javafx.scene.Node.fireEvent(Node.java:8411) at 
> com.sun.javafx.scene.control.skin.ComboBoxListViewSkin.handleControlPropertyChanged(ComboBoxListViewSkin.java:179) 
> at 
> com.sun.javafx.scene.control.skin.BehaviorSkinBase.lambda$registerChangeListener$61(BehaviorSkinBase.java:197) 
> at 
> com.sun.javafx.scene.control.MultiplePropertyChangeListenerHandler$1.changed(MultiplePropertyChangeListenerHandler.java:55) 
> at 
> javafx.beans.value.WeakChangeListener.changed(WeakChangeListener.java:89) 
> at 
> com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:361) 
> at 
> com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81) 
> at 
> javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:105) 
> at 
> javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112) 
> at 
> javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:146) 
> at javafx.scene.control.ComboBoxBase.setValue(ComboBoxBase.java:150) 
> at javafx.scene.control.ComboBox.updateValue(ComboBox.java:463)  at 
> javafx.scene.control.ComboBox.access$200(ComboBox.java:192) at 
> javafx.scene.control.ComboBox$3.changed(ComboBox.java:446) at 
> com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:361) 
> at 
> com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81) 
> at 
> javafx.beans.property.ReadOnlyObjectWrapper$ReadOnlyPropertyImpl.fireValueChangedEvent(ReadOnlyObjectWrapper.java:176) 
> at 
> javafx.beans.property.ReadOnlyObjectWrapper.fireValueChangedEvent(ReadOnlyObjectWrapper.java:142) 
> at 
> javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112) 
> at 
> javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:146) 
> at 
> javafx.scene.control.SelectionModel.setSelectedItem(SelectionModel.java:102) 
> at 
> javafx.scene.control.ComboBox$ComboBoxSelectionModel.lambda$new$154(ComboBox.java:494) 
> at 
> com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:137) 
> at 
> com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81) 
> at 
> javafx.beans.property.ReadOnlyIntegerWrapper$ReadOnlyPropertyImpl.fireValueChangedEvent(ReadOnlyIntegerWrapper.java:176) 
> at 
> javafx.beans.property.ReadOnlyIntegerWrapper.fireValueChangedEvent(ReadOnlyIntegerWrapper.java:142) 
> at 
> javafx.beans.property.IntegerPropertyBase.markInvalid(IntegerPropertyBase.java:113) 
> at 
> javafx.beans.property.IntegerPropertyBase.set(IntegerPropertyBase.java:147) 
> at 
> javafx.scene.control.SelectionModel.setSelectedIndex(SelectionModel.java:68) 
> at 
> javafx.scene.control.SingleSelectionModel.updateSelectedIndex(SingleSelectionModel.java:215) 
> at 
> javafx.scene.control.SingleSelectionModel.select(SingleSelectionModel.java:149) 
> at 
> com.sun.javafx.scene.control.skin.ComboBoxListViewSkin.lambda$createListView$323(ComboBoxListViewSkin.java:484) 
> at 
> com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:349) 
> at 
> com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81) 
> at 
> javafx.beans.property.ReadOnlyIntegerWrapper$ReadOnlyPropertyImpl.fireValueChangedEvent(ReadOnlyIntegerWrapper.java:176) 
> at 
> javafx.beans.property.ReadOnlyIntegerWrapper.fireValueChangedEvent(ReadOnlyIntegerWrapper.java:142) 
> at 
> javafx.beans.property.IntegerPropertyBase.markInvalid(IntegerPropertyBase.java:113) 
> at 
> javafx.beans.property.IntegerPropertyBase.set(IntegerPropertyBase.java:147) 
> at 
> javafx.scene.control.SelectionModel.setSelectedIndex(SelectionModel.java:68) 
> at 
> javafx.scene.control.MultipleSelectionModelBase.select(MultipleSelectionModelBase.java:404) 
> at 
> javafx.scene.control.MultipleSelectionModelBase.clearAndSelect(MultipleSelectionModelBase.java:356) 
> at 
> javafx.scene.control.ListView$ListViewBitSetSelectionModel.clearAndSelect(ListView.java:1403) 
> at 
> com.sun.javafx.scene.control.behavior.CellBehaviorBase.simpleSelect(CellBehaviorBase.java:256) 
> at 
> com.sun.javafx.scene.control.behavior.CellBehaviorBase.doSelect(CellBehaviorBase.java:220) 
> at 
> com.sun.javafx.scene.control.behavior.CellBehaviorBase.mousePressed(CellBehaviorBase.java:150) 
> at 
> com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:95) 
> at 
> com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89) 
> at 
> com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218) 
> at 
> com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) 
> at 
> com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) 
> at 
> com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) 
> at 
> com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) 
> at 
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) 
> at 
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
> at 
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 
> at 
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
> at 
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 
> at 
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
> at 
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) 
> at 
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) 
> at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) 
> at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at 
> javafx.event.Event.fireEvent(Event.java:198) at 
> javafx.scene.Scene$MouseHandler.process(Scene.java:3757) at 
> javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485) at 
> javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762) at 
> javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494) at 
> com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:352) 
> at 
> com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:275) 
> at java.security.AccessController.doPrivileged(Native Method) at 
> com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$355(GlassViewEventHandler.java:388) 
> at 
> com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389) 
> at 
> com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:387) 
> at com.sun.glass.ui.View.handleMouseEvent(View.java:555) at 
> com.sun.glass.ui.View.notifyMouse(View.java:937) at 
> com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at 
> com.sun.glass.ui.win.WinApplication.lambda$null$149(WinApplication.java:191) 
> at java.lang.Thread.run(Thread.java:745) 

ここでは、Userクラスは

ですコンボボックス

public class User { 

    private int id; 
    private String nom; 
    private String prenom; 
    private String cin; 
    private String tel; 
    private String adresse; 
    private String dn; 
    static final String URL = "jdbc:mysql://localhost:3306/gestionpermission"; 
    static final String Driver ="com.mysql.jdbc.Driver"; 

    public User(String cin, String nom, String prenom, String dn, String tel, String adresse) { 
     this.nom = nom; 
     this.prenom = prenom; 
     this.cin = cin; 
     this.tel = tel; 
     this.adresse = adresse; 
     this.dn = dn; 
    } 

    public User() { 

    } 

    public int getId() { 
     return id; 
    } 

    public void setNom(String nom) { 
     this.nom = nom; 
    } 

    public void setPrenom(String prenom) { 
     this.prenom = prenom; 
    } 

    public void setCin(String cin) { 
     this.cin = cin; 
    } 

    public void setTel(String tel) { 
     this.tel = tel; 
    } 

    public void setAdresse(String adresse) { 
     this.adresse = adresse; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public void setDn(String dn) { 
     this.dn = dn; 
    } 

    public String getNom() { 
     return nom; 
    } 

    public String getPrenom() { 
     return prenom; 
    } 

    public String getCin() { 
     return cin; 
    } 

    public String getTel() { 
     return tel; 
    } 

    public String getAdresse() { 
     return adresse; 
    } 

    public String getDn() { 
     return dn; 
    } 

とコントローラで

User u=new User(); 
      cbo_users.setCellFactory((comboBox) -> { 
       return new ListCell<User>() { 
        @Override 
        protected void updateItem(User item, boolean empty) { 
         super.updateItem(item, empty); 

         if (item == null || empty) { 
          setText(null); 
         } else { 
          setText(item.getNom()+" " +item.getPrenom()); 
         } 
        } 
       }; 
      }); 
      cbo_users.setConverter(new StringConverter<User>() { 
      @Override 
      public String toString(User u) { 
       if (u == null) { 
        return null; 
       } else { 
        return u.getNom() + " " + u.getPrenom(); 
       } 
      } 

      @Override 
      public User fromString(String personString) { 
       return null; // No conversion fromString needed. 
      } 
     }); 

      cbo_users.setItems(u.afficher_user()); 

Actionイベント

void select_user(MouseEvent event) { 
       User selectuser = cbo_users.getSelectionModel().getSelectedItem(); 
      System.out.println(selectuser.getNom()); 
      // the same result on selectuser.tostring(); 
     } 

FXMLファイル:

<JFXComboBox fx:id="cbo_users" layoutX="543.0" layoutY="35.0" onAction="#select_user" prefHeight="33.0" prefWidth="185.0" /> 

方法Afficher_userはObservablelistを返す:

public ObservableList afficher_user() throws SQLException{  
     ObservableList<User> data = FXCollections.observableArrayList(); 
      Connection conn=null; 
      try { 
       Class.forName(Driver); 
       conn = DriverManager.getConnection(URL,"root",""); 
       String sql ="select * from utilisateur"; 
       PreparedStatement Stmt = conn.prepareStatement(sql); 
       ResultSet rs = Stmt.executeQuery(sql); 
       while(rs.next()){ 
       User us = new User(); 
       us.setId(rs.getInt("id")); 
       us.setNom(rs.getString("nom")); 
       us.setPrenom(rs.getString("prenom")); 
       us.setCin(rs.getString("cin")); 
       us.setAdresse(rs.getString("adresse")); 
       us.setTel(rs.getString("tel")); 
       us.setDn(rs.getString("dn")); 
       data.add(us); 
       } 
       rs.close(); 
       conn.close(); 
      } catch (ClassNotFoundException ex) { 
       System.err.println(ex.getMessage()); 
      } 
     return data; 
} 
+0

FXMLファイルも提供できますか? –

+0

'afficher_user()'は何をしますか?特に、それは何を返すのですか?スタックトレース全体を投稿できますか? –

+0

afficher_user()アイテムのユーザーのリストを返します。質問を編集します。 –

答えて

0

変更:

:これで

void select_user(MouseEvent event) { 
       User selectuser = cbo_users.getSelectionModel().getSelectedItem(); 
      System.out.println(selectuser.getNom()); 
    } 

を210

void select_user(ActionEvent event) { 
       User selectuser = cbo_users.getSelectionModel().getSelectedItem(); 
      System.out.println(selectuser.getNom()); 
    } 
関連する問題