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