2016-05-01 8 views
2

私は数独ゲームを作らなければなりません。私はコードを試したときに私は自分で修復できない問題を発見しました。私は私は本当に感謝するでしょう私の問題か、いくつかのアドバイスを解決するために、あなたが任意のアイデアを持っているSceneBuilder.If使用しています
私のコード:
FXMLDocumentControllerスレッド「JavaFX Application Thread」の例外java.lang.IllegalArgumentException:引数タイプの不一致

public class FXMLDocumentController implements Initializable { 

@FXML 
private GridPane grid; 
public TextField[][] field= new TextField[9][9]; 
public class getXY{ 
    private TextField temp; 
    private int a; 
    int x,y; 
    public int getNodeByRowColumnIndex(final int row,final int column,GridPane gridPane) { 
    Node result = null; 
    ObservableList<Node> childrens = gridPane.getChildren(); 
    for(Node node : childrens) { 
     if(gridPane.getRowIndex(node) == row && gridPane.getColumnIndex(node) == column) { 
      temp = (TextField) node; 
      a=Integer.parseInt(temp.getText()); 
      break; 
     } 
    } 
    return a; 
} 
} 
@FXML 
private void handleButtonAction(ActionEvent event) { 
    getXY a = new getXY(); 
    for (int i=0; i<9;i++) 
     for (int j=0; j<9;j++){ 

    //int temp=a.getNodeByRowColumnIndex(i, j, grid); 
    System.out.println("1"); 

     } 

     } 




@Override 
public void initialize(URL url, ResourceBundle rb) { 
    for (int i=0; i<9;i++) 
     for (int j=0; j<9;j++){ 
      //field[i][j].setText("0"); 
      TextField ffield = new TextField("0"); 
      grid.add(ffield,i,j); 
     }  
} } 

FXMLDocument.fxml

<?import javafx.scene.layout.AnchorPane?> 
<?import javafx.scene.layout.ColumnConstraints?> 
<?import javafx.scene.layout.GridPane?> 
<?import javafx.scene.layout.RowConstraints?> 

<AnchorPane id="AnchorPane" prefHeight="411.0" prefWidth="639.0"  xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sudokuv2.FXMLDocumentController"> 
<children> 
<GridPane fx:id="grid" gridLinesVisible="true" layoutX="22.0" layoutY="51.0" onKeyReleased="#handleButtonAction" prefHeight="338.0" prefWidth="596.0"> 
<columnConstraints> 
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> 
     <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> 
     <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> 
     <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> 
     <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> 
     <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> 
     <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> 
     <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> 
     <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> 
    </columnConstraints> 
    <rowConstraints> 
     <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> 
     <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> 
     <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> 
     <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> 
     <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> 
     <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> 
     <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> 
     <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> 
     <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> 
    </rowConstraints> 
    </GridPane> 
    </children> 
</AnchorPane> 

そして、結果は

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.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$KeyHandler.process(Scene.java:3964) 
at javafx.scene.Scene$KeyHandler.access$1800(Scene.java:3910) 
at javafx.scene.Scene.impl_processKeyEvent(Scene.java:2040) 
at javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:2501) 
at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:197) 
at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:147) 
at java.security.AccessController.doPrivileged(Native Method) 
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$353(GlassViewEventHandler.java:228) 
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389) 
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:227) 
at com.sun.glass.ui.View.handleKeyEvent(View.java:546) 
at com.sun.glass.ui.View.notifyKey(View.java:966) 
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) 
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191) 
at java.lang.Thread.run(Thread.java:745) 
+0

含めるための[編集]あなたの質問完全なスタックトレース –

答えて

4

ハンドラーメソッドはonKeyReleasedにリンクされています。 GridPaneためdler:

<GridPane fx:id="grid" ... onKeyReleased="#handleButtonAction" ... > 

onKeyReleasedは、パラメータの型がKeyEvent、ないActionEventする必要があります(あなたは非常に紛らわしいhandleButtonAction名付けた)あなたの方法、EventHandler<KeyEvent>を期待しているので:

@FXML 
private void handleButtonAction(KeyEvent event) { 
    // ... 
} 
関連する問題