Créez un projet dans Eclipse.
imageView ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ (1) └ src ・ ・ ・ ・ ・ ・ ・ ・ (2) ├ test.jpg ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ (3) └ visionneuse ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ (4) ├ Main.java ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ (5) ├ MainController.java ・ ・ ・ ・ (6) └ écran.fxml ・ ・ ・ ・ ・ ・ ・ ・ (7)
(1) Projet à créer (2) Répertoire du fichier source créé arbitrairement lors de la création d'un projet (3) Image de test (4) Package à créer (5) Fichier source (décrit dans le chapitre suivant) (6) Fichier source (décrit dans le chapitre suivant) (7) Fichier source (décrit dans le chapitre suivant, créé par SceneBuilder)
3.1. Main.java
Main.java
package viewer;
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) {
		try {
			//Chargement des graphiques de scène depuis FXML
			FXMLLoader loader = new FXMLLoader(getClass().getResource("screen.fxml"));//screen.Placer fxml dans le même package
			Parent root = loader.load();
			//Création d'une scène avec le nœud racine du jeu de graphes de scènes
			Scene scene = new Scene(root, 600, 400);
			//Mise en scène de la scène
			primaryStage.setScene(scene);
			primaryStage.setTitle("Viewer");
			primaryStage.show();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public static void main(String[] args) {
		launch(args);
	}
}
3.2. MainController.java
MainController.java
package viewer;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
public class MainController {
	@FXML
	private ResourceBundle resources;
	@FXML
	private URL location;
	@FXML
	private ImageView img;
	@FXML
	private Button imgDisplayButton;
	@FXML
	private Button imgHideButton;
	@FXML
	void initialize() {
		assert img != null : "fx:id=\"img\" was not injected: check your FXML file 'screen.fxml'.";
		assert imgDisplayButton != null : "fx:id=\"imgDisplayButton\" was not injected: check your FXML file 'screen.fxml'.";
		assert imgHideButton != null : "fx:id=\"imgHideButton\" was not injected: check your FXML file 'screen.fxml'.";
        //(1),(2)Activez l'un et commentez l'autre
        //(1)Lors de la spécification d'une image par URL-----------------------------------------------
		//String url="http://example.com/sample.jpg ";
		//Image image = new Image(url);
        //---------------------------------------------------------------------
        //(2)Lors de la spécification d'une image dans un fichier-------------------------------------------
		Image image = new Image("test.jpg ");//test.Placer jpg directement sous src
        //---------------------------------------------------------------------
		img.setImage(image);
		img.setVisible(false);
		imgHideButton.setDisable(true);
		imgDisplayButton.setDisable(false);
	}
	@FXML
	public void OnclickedImgDisplayButton(ActionEvent event) {
		img.setVisible(true);
		imgDisplayButton.setDisable(true);
		imgHideButton.setDisable(false);
	}
	@FXML
	public void OnclickedImgHideButton(ActionEvent event) {
		img.setVisible(false);
		imgHideButton.setDisable(true);
		imgDisplayButton.setDisable(false);
	}
}
3.3. screen.fxml
screen.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.text.Font?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="viewer.MainController">
   <children>
      <Button fx:id="imgHideButton" layoutX="86.0" layoutY="341.0" mnemonicParsing="false" onAction="#OnclickedImgHideButton" prefHeight="45.0" prefWidth="124.0" text="Cacher">
         <font>
            <Font size="20.0" />
         </font>
      </Button>
      <Button fx:id="imgDisplayButton" layoutX="384.0" layoutY="341.0" mnemonicParsing="false" onAction="#OnclickedImgDisplayButton" prefHeight="45.0" prefWidth="124.0" text="afficher">
         <font>
            <Font size="20.0" />
         </font>
      </Button>
      <ImageView fx:id="img" fitHeight="330.0" fitWidth="588.0" layoutX="5.0" layoutY="6.0" pickOnBounds="true" preserveRatio="true" />
   </children>
</Pane>
Recommended Posts