Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“线程中的异常”;JavaFX应用程序线程;java.lang.IllegalArgumentException_Java_Javafx_Scenebuilder_Illegalargumentexception - Fatal编程技术网

“线程中的异常”;JavaFX应用程序线程;java.lang.IllegalArgumentException

“线程中的异常”;JavaFX应用程序线程;java.lang.IllegalArgumentException,java,javafx,scenebuilder,illegalargumentexception,Java,Javafx,Scenebuilder,Illegalargumentexception,我正在使用javafx创建我的桌面应用程序。 当我试着运行我的代码时,我总是遇到这个错误- Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: argument type mismatch at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccesso

我正在使用javafx创建我的桌面应用程序。 当我试着运行我的代码时,我总是遇到这个错误-

Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.reflect.misc.Trampoline.invoke(Unknown Source)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.reflect.misc.MethodUtil.invoke(Unknown Source)
at javafx.fxml.FXMLLoader$MethodHandler.invoke(Unknown Source)
at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(Unknown Source)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
at com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
at javafx.event.Event.fireEvent(Unknown Source)
at javafx.scene.Node.fireEvent(Unknown Source)
at javafx.scene.control.Button.fire(Unknown Source)
at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(Unknown Source)
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(Unknown Source)
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(Unknown Source)
at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(Unknown Source)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
at com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
at javafx.event.Event.fireEvent(Unknown Source)
at javafx.scene.Scene$MouseHandler.process(Unknown Source)
at javafx.scene.Scene$MouseHandler.access$1500(Unknown Source)
at javafx.scene.Scene.impl_processMouseEvent(Unknown Source)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Unknown Source)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$355(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Unknown Source)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(Unknown Source)
at com.sun.glass.ui.View.handleMouseEvent(Unknown Source)
at com.sun.glass.ui.View.notifyMouse(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$149(Unknown Source)
at java.lang.Thread.run(Unknown Source)
我没有写fxml文件,我用的是SceneBuilder

我的fxml-

<?xml version="1.0" encoding="UTF-8"?>

<?import com.jfoenix.controls.JFXButton?>
<?import com.jfoenix.controls.JFXTextArea?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="neviTracker.ui.ScannerController">
   <children>
      <VBox prefHeight="400.0" prefWidth="600.0" style="-fx-background-color: #ffffff;" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
     <children>
        <HBox alignment="CENTER" prefHeight="56.0" prefWidth="600.0">
           <children>
              <Label text="Scanning" textAlignment="CENTER">
                 <font>
                    <Font name="System Bold Italic" size="29.0" />
                 </font>
              </Label>
           </children>
        </HBox>
        <HBox alignment="CENTER" prefHeight="53.0" prefWidth="575.0" spacing="5.0">
           <children>
              <VBox alignment="CENTER" prefHeight="53.0" prefWidth="109.0">
                 <children>
                    <ImageView fx:id="imgDownload" fitHeight="32.0" fitWidth="31.0" pickOnBounds="true" preserveRatio="true">
                       <image>
                          <Image url="@../../Images/waiting_icon.png" />
                       </image>
                    </ImageView>
                    <Label text="Download Images">
                       <font>
                          <Font name="System Bold" size="12.0" />
                       </font>
                    </Label>
                 </children>
              </VBox>
              <VBox alignment="CENTER" prefHeight="53.0" prefWidth="109.0">
                 <children>
                    <ImageView fx:id="imgProccessing" fitHeight="32.0" fitWidth="31.0" pickOnBounds="true" preserveRatio="true">
                       <image>
                          <Image url="@../../Images/waiting_icon.png" />
                       </image>
                    </ImageView>
                    <Label text="Processing">
                       <font>
                          <Font name="System Bold" size="12.0" />
                       </font>
                    </Label>
                 </children>
              </VBox>
              <VBox alignment="CENTER" prefHeight="53.0" prefWidth="109.0">
                 <children>
                    <ImageView fx:id="imgClassify" fitHeight="32.0" fitWidth="31.0" pickOnBounds="true" preserveRatio="true">
                       <image>
                          <Image url="@../../Images/waiting_icon.png" />
                       </image>
                    </ImageView>
                    <Label text="Classfiy">
                       <font>
                          <Font name="System Bold" size="12.0" />
                       </font>
                    </Label>
                 </children>
              </VBox>
              <VBox alignment="CENTER" prefHeight="59.0" prefWidth="115.0">
                 <children>
                    <ImageView fx:id="imgDifference" fitHeight="32.0" fitWidth="31.0" pickOnBounds="true" preserveRatio="true">
                       <image>
                          <Image url="@../../Images/waiting_icon.png" />
                       </image>
                    </ImageView>
                    <Label text="Check for difference">
                       <font>
                          <Font name="System Bold" size="12.0" />
                       </font>
                    </Label>
                 </children>
              </VBox>
              <VBox alignment="CENTER" prefHeight="53.0" prefWidth="109.0">
                 <children>
                    <ImageView fx:id="imgFinal" fitHeight="32.0" fitWidth="31.0" pickOnBounds="true" preserveRatio="true">
                       <image>
                          <Image url="@../../Images/waiting_icon.png" />
                       </image>
                    </ImageView>
                    <Label text="Final steps">
                       <font>
                          <Font name="System Bold" size="12.0" />
                       </font>
                    </Label>
                 </children>
              </VBox>
           </children>
        </HBox>
        <ScrollPane prefHeight="250.0" prefWidth="600.0">
           <content>
              <JFXTextArea fx:id="txtProgress" maxWidth="594.0" minWidth="585.0" prefHeight="242.0" prefWidth="585.0" />
           </content>
        </ScrollPane>
        <HBox alignment="CENTER" prefHeight="40.0" prefWidth="600.0" spacing="20.0">
           <children>
              <JFXButton fx:id="btnStartScanning" buttonType="RAISED" onAction="#handleStartButton" prefWidth="80.0" ripplerFill="WHITE" style="-fx-background-color: #408ea8;" text="Start" textFill="WHITE" />
              <JFXButton fx:id="btnStopScanning" buttonType="RAISED" onAction="#handleStopButton" prefWidth="80.0" ripplerFill="WHITE" style="-fx-background-color: #408ea8;" text="Cancel" textFill="WHITE" />
           </children>
        </HBox>
     </children>
  </VBox>
   </children>
 </AnchorPane>

这个fxml后面的代码-

import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;

import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXTextArea;

import emuns.ImageStatus;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import utils.Constants;

public class ScannerController implements Initializable {

@FXML
private ImageView imgDownload;

@FXML
private ImageView imgProccessing;

@FXML
private ImageView imgClassify;

@FXML
private ImageView imgDifference;

@FXML
private ImageView imgFinal;

@FXML
private JFXTextArea txtProgress;

@FXML
private JFXButton btnStartScanning;

@FXML
private JFXButton btnStopScanning;

Map<String, ImageView> mapping = new HashMap<>();

@FXML private FXMLDrawerController drawerController;


public ScannerController() {
}

@Override
public void initialize(URL location, ResourceBundle resources) {
    mapping.put("Downloading", imgDownload);
    mapping.put("Processing", imgProccessing);
    mapping.put("Classify", imgClassify);
    mapping.put("Differance", imgDifference);
    mapping.put("Final", imgFinal);
}

public void setDrawerController(FXMLDrawerController drawerController) {
    this.drawerController = drawerController;   
}


@FXML
void handleStartButton(MouseEvent event) {
    drawerController.startScanning();
}

@FXML
void handleStopButton(MouseEvent event) {
    drawerController.startScanning();
}
}
import java.net.URL;
导入java.util.HashMap;
导入java.util.Map;
导入java.util.ResourceBundle;
导入com.jfoenix.controls.JFXButton;
导入com.jfoenix.controls.JFXTextArea;
导入emons.ImageStatus;
导入javafx.fxml.fxml;
导入javafx.fxml.Initializable;
导入javafx.scene.image.ImageView;
导入javafx.scene.input.MouseEvent;
导入utils.Constants;
公共类ScannerController实现可初始化{
@FXML
私有图像视图imgDownload;
@FXML
私有ImageView ImgProcessing;
@FXML
私有图像视图imgClassify;
@FXML
私有图像视图img差异;
@FXML
私有ImageView imgFinal;
@FXML
私人JFXTextArea TXT进度;
@FXML
专用jfx按钮btnStartScanning;
@FXML
专用JFXButton btnStopScanning;
Map mapping=newhashmap();
@FXML专用FXML抽屉控制器抽屉控制器;
公共扫描控制器(){
}
@凌驾
公共void初始化(URL位置、ResourceBundle资源){
mapping.put(“下载”,imgDownload);
mapping.put(“处理”,imgProccessing);
mapping.put(“分类”,imgClassify);
mapping.put(“Differance”,imgderience);
映射。放置(“最终”,imgFinal);
}
公共作废设置抽屉控制器(FXML抽屉控制器抽屉控制器){
this.drawerController=抽屉控制器;
}
@FXML
无效handleStartButton(MouseeEvent事件){
抽屉控制器。开始扫描();
}
@FXML
无效handleStopButton(MouseeEvent事件){
抽屉控制器。开始扫描();
}
}
是否有人发现了问题并能帮助我? 我不知道如何解决我的问题。。somwone能给我一些建议吗?
Tnx

使用
ActionEvent
而不是
MouseEvent

@FXML
void handleStartButton(ActionEvent event) {
    drawerController.startScanning();
}

@FXML
void handleStopButton(ActionEvent event) {
    drawerController.startScanning();
}

它不起作用。我得到运行时异常-java.lang.RuntimeException:java.lang.reflect。InvocationTargetException@DanaS更新您的问题以包含新的堆栈跟踪。大概您使用的是JavaFX
ActionEvent
,而不是AWT-one…Tnx@James\u D它可以工作!我没有看到AWT的eclipse导入ActionEvent。。。又是TNX@James_D感谢您这么说:)我想对此发表评论,但我不想说出来,这对声誉来说太重要了。@Shashwat将答案标记为正确有助于其他用户找到这些答案,因此鼓励用户将答案标记为正确也有利于普通社区。