i don’t know where is the problem in my code
i have tried to correct it many times …
The code below is in “MainPage.fxml”
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.text.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextArea?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="662.0" prefWidth="492.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Button fx:id="btsubmit" layoutX="327.0" layoutY="33.0" mnemonicParsing="false" onAction="#btn1handle" text="submit" />
<Button fx:id="btclear" layoutX="398.0" layoutY="33.0" mnemonicParsing="false" text="clear" />
<Label layoutX="36.0" layoutY="33.0" text="input infix : ">
<font>
<Font size="18.0" />
</font>
</Label>
<TextArea fx:id="userinput" layoutX="139.0" layoutY="28.0" prefHeight="33.0" prefWidth="180.0" />
<ScrollPane id="tranpostprc" layoutX="34.0" layoutY="427.0" prefHeight="200.0" prefWidth="200.0">
<content>
<AnchorPane fx:id="tranpostprc" minHeight="0.0" minWidth="0.0" prefHeight="202.0" prefWidth="200.0" />
</content>
</ScrollPane>
<ScrollPane id="countpostprc" layoutX="265.0" layoutY="427.0" prefHeight="200.0" prefWidth="200.0">
<content>
<AnchorPane fx:id="countpostprc" minHeight="0.0" minWidth="0.0" prefHeight="200.0" prefWidth="200.0" />
</content>
</ScrollPane>
<Label layoutX="40.0" layoutY="61.0" prefHeight="24.0" prefWidth="412.0" text="Please input string as format (1+2)*3 or A*B-(C+D)" />
<Label layoutX="32.0" layoutY="387.0" text="postfix : ">
<font>
<Font size="18.0" />
</font>
</Label>
<TextArea fx:id="tranpost" layoutX="103.0" layoutY="383.0" prefHeight="33.0" prefWidth="129.0" />
<TextArea fx:id="countpost" layoutX="332.0" layoutY="383.0" prefHeight="33.0" prefWidth="129.0" />
<Label layoutX="261.0" layoutY="387.0" text="postfix : ">
<font>
<Font size="18.0" />
</font>
</Label>
<TextArea fx:id="tranpre" layoutX="98.0" layoutY="128.0" prefHeight="33.0" prefWidth="136.0" />
<Label layoutX="34.0" layoutY="132.0" text="prefix : ">
<font>
<Font size="18.0" />
</font>
</Label>
<ScrollPane id="tranpreprc" layoutX="34.0" layoutY="171.0" prefHeight="200.0" prefWidth="200.0">
<content>
<AnchorPane fx:id="tranpreprc" minHeight="0.0" minWidth="0.0" prefHeight="202.0" prefWidth="200.0" />
</content>
</ScrollPane>
<ScrollPane id="countpreprc" layoutX="265.0" layoutY="171.0" prefHeight="200.0" prefWidth="200.0">
<content>
<AnchorPane fx:id="countpreprc" minHeight="0.0" minWidth="0.0" prefHeight="202.0" prefWidth="200.0" />
</content>
</ScrollPane>
<Label layoutX="265.0" layoutY="132.0" text="prefix : ">
<font>
<Font size="18.0" />
</font>
</Label>
<TextArea fx:id="countpre" layoutX="329.0" layoutY="128.0" prefHeight="33.0" prefWidth="136.0" />
<Label layoutX="32.0" layoutY="92.0" text="前序後序">
<font>
<Font size="22.0" />
</font>
</Label>
<Label layoutX="263.0" layoutY="92.0" text="前序後序求值">
<font>
<Font size="22.0" />
</font>
</Label>
</children>
</AnchorPane>
The code below is in “Main.java”
import javafx.application.Application;
import javafx.stage.Stage;
import java.io.IOException;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(Main.class.getResource("MainPage.fxml"));
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
The code below is in “Controller.java”
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.Initializable;
import java.awt.Button;
import java.awt.TextArea;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.input.MouseEvent;
public class Controller implements Initializable{
@FXML
public TextArea userinput, tranpre, tranpost, countpre, countpost,
tranpreprc, tranpostprc, countpreprc, countpostprc;
@FXML
public Button btsubmit, btclear;
@FXML
public void btn1handle(ActionEvent event) {
tranpre.setText(userinput.getText());
}
@FXML
public void textareaHandle(MouseEvent event) {
}
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
// TODO Auto-generated method stub
}
}
The information below is the error presentation
Exception in Application start method
java.lang.reflect.InvocationTargetException
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 com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
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.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182)
at java.lang.Thread.run(Unknown Source)
Caused by: javafx.fxml.LoadException:
/C:/Users/%e5%90%b3%e5%a6%8d%e5%bd%a4/Desktop/%e8%b3%87%e7%b5%90%e7%a8%8b%e5%bc%8f%e4%bd%9c%e6%a5%ad/2018%20gui/bin/MainPage.fxml:17
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2579)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
at Main.start(Main.java:14)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
... 1 more
Caused by: java.lang.IllegalArgumentException: Unable to coerce #btn1handle to interface javafx.event.EventHandler.
at com.sun.javafx.fxml.BeanAdapter.coerce(BeanAdapter.java:496)
at com.sun.javafx.fxml.BeanAdapter.put(BeanAdapter.java:258)
at com.sun.javafx.fxml.BeanAdapter.put(BeanAdapter.java:54)
at javafx.fxml.FXMLLoader$Element.applyProperty(FXMLLoader.java:512)
at javafx.fxml.FXMLLoader$Element.processValue(FXMLLoader.java:363)
at javafx.fxml.FXMLLoader$Element.processPropertyAttribute(FXMLLoader.java:325)
at javafx.fxml.FXMLLoader$Element.processInstancePropertyAttributes(FXMLLoader.java:235)
at javafx.fxml.FXMLLoader$ValueElement.processEndElement(FXMLLoader.java:767)
at javafx.fxml.FXMLLoader.processEndElement(FXMLLoader.java:2823)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2532)
... 17 more
Exception running application Main
I tried many different ways to change this code to be correct
but i didn’t success until now.
And i found that i would be correct when i delete " onAction="#btn1handle" " which is in MainPage.fxml
i don’t know how to solve this problem…
any suggestions or amendments will be grateful
Thanks !