Я новичок в Eclipse java, Gradle и Javafx. Недавно я пытаюсь написать приложение javafx с gradle-проектом. Ниже приведены всевозможные подробности, которые я хотел бы предоставить.
Версия и местоположение Javafx SDK
Версия и местоположение Scene Builder
Мой вопрос также возникает здесь, как на самом деле работает заполнение в Eclipse? Где я должен разместить класс водителя? Под src / main / java?
Мой каталог Eclipse
Так я форматирую свой пользовательский интерфейс.
ui.f xml:
> <?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.171">
<children>
<Button fx:id="button1" layoutX="-317.0" layoutY="-145.0" mnemonicParsing="false" onAction="#buttonPressed" text="Hit me" />
<Label fx:id="label1" layoutX="66.0" layoutY="-98.0" text="hi" />
</children>
</AnchorPane>
build.gradle
plugins {
id 'java'
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.8'
}
repositories {
mavenCentral()
}
dependencies {
modules = [ 'javafx.controls', 'javafx.fxml' ]
version = "11.0.2"
}
mainClassName = 'Library'
Я сомневаюсь, что здесь есть некоторые проблемы, потому что когда я запускаю проект gradle, я не могу его запустить. Я мог только построить его.
Ошибка Gradle: невозможно установить значение свойства 'modules' только для чтения для объекта типа org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
Библиотека. java: (класс драйвера)
public class Library {
public static void main(String arg[]) {
ex2.UIApplication.run(arg);
}
}
Когда я запускаю это, я получаю довольно много ошибок.
Аргумент VM: --module-path "C: \ Users \ andes \ javafx-sdk-11.0.2 \ lib" --add-modules = javafx.controls, javafx.f xml
Ошибка: не удалось найти или загрузить основной класс Lab_3_1.Library
Lab3Controller. java:
package ex2;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
public class Lab3Controller {
@FXML
private Button button1;
@FXML
private Label label1;
@FXML
void buttonPressed(ActionEvent event) {
}
}
UIApplication. java:
package ex2;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class UIApplication extends Application{
@Override
public void start(Stage stage) throws Exception{
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("/ui.fxml"));
VBox root = (VBox) loader.load();
Scene scene = new Scene(root);
stage.setScene(scene);
stage.setTitle("Lab 3");;
stage.show();
}
public static void run (String arg[]) {
Application.launch(arg);
}
}