1.1.38.1. fejezet, JavaFX
Beküldte pzoli - 2020, július 14 - 5:04du
module-info.java (src/main/java)
module com.mycompany.homework4jfx { requires javafx.controls; requires java.base; requires javafx.base; requires javafx.fxml; exports com.mycompany.homework4jfx; }
app.java
package com.mycompany.homework4jfx; import java.io.FileInputStream; import java.io.IOException; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.layout.AnchorPane; import javafx.stage.Stage; /** * JavaFX App */ public class App extends Application { @Override public void start(Stage stage) throws IOException { FXMLLoader loader = new FXMLLoader(); String fxmlDocPath = getClass().getClassLoader().getResource("FXML.fxml").getFile(); FileInputStream fxmlStream = new FileInputStream(fxmlDocPath); AnchorPane root = (AnchorPane) loader.load(fxmlStream); Scene scene = new Scene(root); stage.setScene(scene); stage.setTitle("A simple FXML Example"); stage.show(); } public static void main(String[] args) { launch(); } }
FXMLController
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.mycompany.homework4jfx; import java.net.URL; import java.util.ResourceBundle; import javafx.application.Platform; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Button; import javafx.scene.control.Menu; /** * FXML Controller class * * @author pzoli */ public class FXMLController implements Initializable { /** * Initializes the controller class. */ @Override public void initialize(URL url, ResourceBundle rb) { // TODO } @FXML public Button btnClose; @FXML public void onClose(ActionEvent event) { Platform.exit(); System.exit(0); } }
FXML.fxml (src/main/resources)
<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.Button?> <?import javafx.scene.control.ButtonBar?> <?import javafx.scene.control.Menu?> <?import javafx.scene.control.MenuBar?> <?import javafx.scene.control.MenuItem?> <?import javafx.scene.layout.AnchorPane?> <AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.mycompany.homework4jfx.FXMLController"> <children> <ButtonBar layoutX="14.0" layoutY="346.0" prefHeight="40.0" prefWidth="573.0"> <buttons> <Button fx:id="btnClose" mnemonicParsing="false" onAction="#onClose" text="Close" /> </buttons> </ButtonBar> <MenuBar layoutX="14.0" layoutY="14.0" prefHeight="16.0" prefWidth="573.0"> <menus> <Menu mnemonicParsing="false" text="File"> <items> <MenuItem mnemonicParsing="false" onAction="#onClose" text="Close" /> </items> </Menu> <Menu mnemonicParsing="false" text="Edit"> <items> <MenuItem mnemonicParsing="false" text="Delete" /> </items> </Menu> <Menu mnemonicParsing="false" text="Help"> <items> <MenuItem mnemonicParsing="false" text="About" /> </items> </Menu> </menus> </MenuBar> </children> </AnchorPane>
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany</groupId> <artifactId>Homework4JFX</artifactId> <version>1.0-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-controls</artifactId> <version>13</version> </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-fxml</artifactId> <version>13</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <release>11</release> </configuration> </plugin> <plugin> <groupId>org.openjfx</groupId> <artifactId>javafx-maven-plugin</artifactId> <version>0.0.4</version> <configuration> <mainClass>com.mycompany.homework4jfx.App</mainClass> </configuration> <executions> <execution> <!-- Default configuration for running --> <!-- Usage: mvn clean javafx:run --> <id>default-cli</id> </execution> <execution> <!-- Configuration for manual attach debugging --> <!-- Usage: mvn clean javafx:run@debug --> <id>debug</id> <configuration> <options> <option>-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=localhost:8000</option> </options> </configuration> </execution> <execution> <!-- Configuration for automatic IDE debugging --> <id>ide-debug</id> <configuration> <options> <option>-agentlib:jdwp=transport=dt_socket,server=n,address=${jpda.address}</option> </options> </configuration> </execution> <execution> <!-- Configuration for automatic IDE profiling --> <id>ide-profile</id> <configuration> <options> <option>${profiler.jvmargs.arg1}</option> <option>${profiler.jvmargs.arg2}</option> <option>${profiler.jvmargs.arg3}</option> <option>${profiler.jvmargs.arg4}</option> <option>${profiler.jvmargs.arg5}</option> </options> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
Kapcsolódó hivatkozások
- A hozzászóláshoz be kell jelentkezni