Erstellen Sie ein Projekt in Eclipse.
imageView 1 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 1 (1) 2 src ・ ・ ・ ・ ・ ・ ・ 2 (2) ├ test.jpg 3 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 3 3 (3) └ Betrachter 4 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 4 (4) ├ Main.java 5) ・ ・ ・ ・ ・ ・ ・ ・ 5 (5) ├ MainController.java 6 ・ ・ 6 (6) └ screen.fxml 7 ・ ・ ・ ・ ・ ・ 7 (7)
(1) Zu erstellendes Projekt (2) Quelldateiverzeichnis, das beim Erstellen eines Projekts willkürlich erstellt wurde (3) Testbild (4) Zu erstellendes Paket (5) Quelldatei (im nächsten Kapitel beschrieben) (6) Quelldatei (im nächsten Kapitel beschrieben) (7) Quelldatei (beschrieben im nächsten Kapitel, erstellt von 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 {
//Laden von Szenendiagrammen aus FXML
FXMLLoader loader = new FXMLLoader(getClass().getResource("screen.fxml"));//screen.Platzieren Sie fxml im selben Paket
Parent root = loader.load();
//Erstellen einer Szene mit dem Wurzelknoten des Szenendiagrammsatzes
Scene scene = new Scene(root, 600, 400);
//Die Szene auf die Bühne bringen
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)Aktivieren Sie eines und kommentieren Sie das andere aus
//(1)Bei der Angabe eines Bildes per URL-----------------------------------------------
//String url="http://example.com/sample.jpg ";
//Image image = new Image(url);
//---------------------------------------------------------------------
//(2)Beim Angeben eines Bildes in einer Datei-------------------------------------------
Image image = new Image("test.jpg ");//test.Platziere jpg direkt unter 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="Ausblenden">
<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="Anzeige">
<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