Задача: графично приложение Суматор за числа
Здравейте колеги! Опитвам да направя задачата за Суматор за числа от Programming Basics with Java, но получавам грешки при стартиране. Търсих информация за тази грешка, но не намерих нищо съществено. Ще ви бъда много благодарен, ако ми съдействате. Грешките са следните:
"C:\Program Files\Java\jdk-14\bin\java.exe" --add-modules javafx.base,javafx.graphics --add-reads javafx.base=ALL-UNNAMED --add-reads javafx.graphics=ALL-UNNAMED "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.3.3\lib\idea_rt.jar=6474:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\Lenovo\IdeaProjects\Sumator\out\production\Sumator;C:\Users\Lenovo\Desktop\javafx-sdk-14\lib\src.zip;C:\Users\Lenovo\Desktop\javafx-sdk-14\lib\javafx-swt.jar;C:\Users\Lenovo\Desktop\javafx-sdk-14\lib\javafx.web.jar;C:\Users\Lenovo\Desktop\javafx-sdk-14\lib\javafx.base.jar;C:\Users\Lenovo\Desktop\javafx-sdk-14\lib\javafx.fxml.jar;C:\Users\Lenovo\Desktop\javafx-sdk-14\lib\javafx.media.jar;C:\Users\Lenovo\Desktop\javafx-sdk-14\lib\javafx.swing.jar;C:\Users\Lenovo\Desktop\javafx-sdk-14\lib\javafx.controls.jar;C:\Users\Lenovo\Desktop\javafx-sdk-14\lib\javafx.graphics.jar -p C:\Users\Lenovo\Desktop\javafx-sdk-14\lib\javafx.base.jar;C:\Users\Lenovo\Desktop\javafx-sdk-14\lib\javafx.graphics.jar sample.Main
Exception in Application start method
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
Caused by: java.lang.RuntimeException: Exception in Application start method
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.lang.IllegalAccessError: class com.sun.javafx.fxml.FXMLLoaderHelper (in unnamed module @0x7c4bb373) cannot access class com.sun.javafx.util.Utils (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.util to unnamed module @0x7c4bb373
at com.sun.javafx.fxml.FXMLLoaderHelper.<clinit>(FXMLLoaderHelper.java:38)
at javafx.fxml.FXMLLoader.<clinit>(FXMLLoader.java:2056)
at sample.Main.start(Main.java:13)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
... 1 more
Exception running application sample.Main
Process finished with exit code 1
Сорс на Main:
package sample; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) throws Exception{ Parent root = FXMLLoader.load(getClass().getResource("sample.fxml")); primaryStage.setTitle("Hello World"); primaryStage.setScene(new Scene(root, 300, 275)); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
Сорс на Sample:
<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.Button?> <?import javafx.scene.control.Label?> <?import javafx.scene.control.TextField?> <?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.layout.ColumnConstraints?> <?import javafx.scene.layout.GridPane?> <?import javafx.scene.layout.RowConstraints?> <GridPane alignment="center" hgap="10" prefHeight="307.0" prefWidth="540.0" vgap="10" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/11.0.1" fx:controller="sample.Controller"> <columnConstraints> <ColumnConstraints /> <ColumnConstraints /> <ColumnConstraints /> </columnConstraints> <rowConstraints> <RowConstraints /> </rowConstraints> <children> <AnchorPane prefHeight="200.0" prefWidth="591.0" GridPane.columnIndex="2"> <children> <TextField layoutX="176.0" layoutY="63.0" /> <TextField layoutX="363.0" layoutY="63.0" /> <Label layoutX="146.0" layoutY="67.0" text="+" /> <Label layoutX="339.0" layoutY="67.0" text="=" /> <Button layoutX="218.0" layoutY="106.0" mnemonicParsing="false" text="Calculate" /> <TextField layoutX="-20.0" layoutY="63.0" /> </children> </AnchorPane> </children> </GridPane>
Задача: графично приложение „Суматор за числа“
Да се напише графично (GUI) приложение, което изчислява сумата на две числа. При въвеждане на две числа в първите две текстови полета и натискане на бутона [Calculate] се изчислява тяхната сума и резултатът се показва в третото поле.
Още не съм стигнал до написването на пълния код с изцяло функциониращия Суматор, но написаният до тук код е първата част от задачата и би трябвало да ми се отвори приложението, но вместо това дава споменатите грешки.
Виж какво са коментирали други колеги тук за тази задача:
https://softuni.bg/forum/26420/grafichno-prilojenie-sumator-za-chisla-programming-basics-with-python
За Python е, но се надявам да ти помогне.
Благодаря, колега, но за съжаление поне до колкото аз се ориентирам, това не ми помага. Проблемът на колегите с python-а е бил, че им отваря празен прозорец. Аз и до там не стигам. Като направя дизайна в Scene builder, върна се в IntelliJ IDEA и дам старт, не ми отваря абсолютно нищо, дори празно приложение. Остават си само грешките, които се изписват в IntelliJ IDEA.