diff --git a/build.gradle b/build.gradle index 3becc77af52a39f0a4cfafd424648f396a43cb0e..3f68e943a6babee7b1516c28a1b3ac6e1e43964b 100644 --- a/build.gradle +++ b/build.gradle @@ -4,12 +4,19 @@ plugins { id 'checkstyle' id 'jacoco' id 'pmd' - id "com.github.spotbugs" version "5.0.12" + id "com.github.spotbugs" version "5.0.13" + id 'org.openjfx.javafxplugin' version '0.1.0' + id 'org.beryx.jlink' version '2.26.0' } group 'fr.univ_amu' version '1.0-SNAPSHOT' +javafx { + version = "21" + modules = [ 'javafx.controls', 'javafx.fxml' ] +} + checkstyle { toolVersion = '10.3.4' } @@ -19,12 +26,12 @@ repositories { } dependencies { - testImplementation('org.junit.jupiter:junit-jupiter-api:5.9.0', - 'org.assertj:assertj-core:3.23.1') + testImplementation('org.junit.jupiter:junit-jupiter-api:5.10.0', + 'org.assertj:assertj-core:3.24.2') spotbugsPlugins 'com.h3xstream.findsecbugs:findsecbugs-plugin:1.12.0' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.0' - implementation 'org.apache.logging.log4j:log4j-api:2.19.0' - implementation 'org.apache.logging.log4j:log4j-core:2.19.0' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.0' + implementation 'org.apache.logging.log4j:log4j-api:2.20.0' + implementation 'org.apache.logging.log4j:log4j-core:2.20.0' } test { @@ -39,7 +46,7 @@ test { } application { - mainClass = 'sample.MyJavaFrame' + mainClass = 'sample.App' } tasks.named('jar') { @@ -60,7 +67,8 @@ spotbugsMain { reports { html { required = true - outputLocation = file("$buildDir/reports/spotbugs/main/spotbugs.html") + Provider<Directory> output = layout.buildDirectory.dir("reports/spotbugs/main/spotbugs.html") + outputLocation = output.get().asFile stylesheet = 'fancy-hist.xsl' } } @@ -70,7 +78,8 @@ spotbugsTest { reports { html { required = true - outputLocation = file("$buildDir/reports/spotbugs/test/spotbugs.html") + Provider<Directory> output = layout.buildDirectory.dir("reports/spotbugs/test/spotbugs.html") + outputLocation = output.get().asFile stylesheet = 'fancy-hist.xsl' } } diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000000000000000000000000000000000000..f65ce090354d89837484cd27a35ad4b140e372ee --- /dev/null +++ b/gradle.properties @@ -0,0 +1 @@ +org.gradle.warning.mode=none \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ae04661ee733431762e7ccf8ab9b7409ed44960c..db9a6b825d7f4424d226b9146f33b98575b4e1fa 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/sample/App.java b/src/main/java/sample/App.java new file mode 100644 index 0000000000000000000000000000000000000000..1bcd9be25d10d84aefcb22e2bb64fc7c6c64513d --- /dev/null +++ b/src/main/java/sample/App.java @@ -0,0 +1,52 @@ +package sample; +import javafx.application.Application; +import javafx.scene.Group; +import javafx.scene.Scene; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.stage.Stage; + + +public class App extends Application { + + @Override + public void start(Stage stage) { + + + Scene scene = createScene(); + + stage.setTitle("Loading an image"); + + stage.setScene(scene); + + stage.show(); + } + + private static Scene createScene() { + Image image = new Image("sample/image.png"); + + //Setting the image view + ImageView imageView = new ImageView(image); + + //Setting the position of the image + imageView.setX(100); + imageView.setY(100); + + //setting the fit height and width of the image view + imageView.setFitHeight(216); + imageView.setFitWidth(256); + + //Setting the preserve ratio of the image view + imageView.setPreserveRatio(true); + + //Creating a Group object + Group root = new Group(imageView); + + //Creating and returning a scene object + return new Scene(root, 600, 600); + } + + public static void main(String[] args) { + launch(); + } +} diff --git a/src/main/java/sample/MyJavaFrame.java b/src/main/java/sample/MyJavaFrame.java deleted file mode 100644 index d3aaf0758226fae936382e4585590baa016436f2..0000000000000000000000000000000000000000 --- a/src/main/java/sample/MyJavaFrame.java +++ /dev/null @@ -1,30 +0,0 @@ -package sample; - -import java.io.Serial; -import javax.swing.JFrame; - - -/** - * An extended version of javax.swing.JFrame containing a panel to draw images. - */ -public class MyJavaFrame extends JFrame { - - @Serial - private static final long serialVersionUID = 42L; - /** - * Constructs a new visible frame. - */ - - public MyJavaFrame() { - setTitle("Main window"); - setSize(400, 400); - setLocationRelativeTo(null); - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - add(new MyJavaPanel()); - setVisible(true); - } - - public static void main(String[] args) { - new MyJavaFrame(); - } -} diff --git a/src/main/java/sample/MyJavaPanel.java b/src/main/java/sample/MyJavaPanel.java deleted file mode 100644 index d8239fcb1355144be38de2a3eaaed4dc3108bcdb..0000000000000000000000000000000000000000 --- a/src/main/java/sample/MyJavaPanel.java +++ /dev/null @@ -1,47 +0,0 @@ -package sample; - -import java.awt.Graphics; -import java.awt.image.BufferedImage; -import java.io.Serial; -import java.text.MessageFormat; -import java.util.Objects; -import javax.imageio.ImageIO; -import javax.swing.JPanel; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -/** - * An extension of javax.swing.JFrame that can draw images. - */ -public class MyJavaPanel extends JPanel { - @Serial - private static final long serialVersionUID = 4242L; - private transient BufferedImage image; - - /** - * Constructs a new panel that draw an image. - */ - - public MyJavaPanel() { - Logger logger = LogManager.getLogger(this.getClass()); - logger.debug("Construct a MyJavaPanel"); - String path = "image.png"; - if (logger.isDebugEnabled()) { - String message = MessageFormat.format("Loading image at path {0}", path); - logger.debug(message); - - } - try { - image = ImageIO.read(Objects.requireNonNull(getClass().getResource(path))); - } catch (Exception ex) { - String message = MessageFormat.format("Error: Cannot load image at path: {0}", path); - logger.error(message, ex); - } - } - - @Override - protected void paintComponent(Graphics g) { - super.paintComponent(g); - g.drawImage(image, 50, 50, null); - } -}