Guten Tag,
ich schreibe zurzeit an einer Art "Foto und Video Album" um zu überprüfen, ob ich mein bisher gelerntes verstanden habe. Ich habe zuvor schon einen Zufallsgenerator erstellt, aus welchem ich die Controller Class für die Buttons auf meinen jetzigen Code übernommen und angepasst habe, nun bin ich aber auf das Problem gestoßen, dass sich das Programm nicht mehr starten lässt bzw. ab dem Controller-Teil im Code abstürzt. Ich habe meinen Code mehrfach überprüft, mit dem anderen verglichen und auch mehrfach umstrukturiert, doch ich komme auf keine Lösung. Zurzeit habe ich nur einen Button zum testen in die Controller Class rein geschrieben
Main.java
Controller.java
Gui.fxml
ich schreibe zurzeit an einer Art "Foto und Video Album" um zu überprüfen, ob ich mein bisher gelerntes verstanden habe. Ich habe zuvor schon einen Zufallsgenerator erstellt, aus welchem ich die Controller Class für die Buttons auf meinen jetzigen Code übernommen und angepasst habe, nun bin ich aber auf das Problem gestoßen, dass sich das Programm nicht mehr starten lässt bzw. ab dem Controller-Teil im Code abstürzt. Ich habe meinen Code mehrfach überprüft, mit dem anderen verglichen und auch mehrfach umstrukturiert, doch ich komme auf keine Lösung. Zurzeit habe ich nur einen Button zum testen in die Controller Class rein geschrieben
Main.java
Java:
package application;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.TabPane;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.BorderPane;
public class Main extends Application implements EventHandler<ActionEvent> {
private Stage primaryStage;
@Override
public void start(Stage primaryStage) {
this.primaryStage = primaryStage;
client();
}
public void client() {
//Zähler für vorhandene Bilder und Videos (.mp4 und .jpg)
File vidfolder = new File("C:\\JavAlbum/videos");
File picfolder = new File("C:\\JavAlbum/pictures");
File[] vids = vidfolder.listFiles();
File[] pics = picfolder.listFiles();
int vidcount=0;
int piccount=0;
for(File vid :vids){
if(vid.getName().endsWith(".mp4")){
vidcount++;
}}
for(File pic :pics){
if(pic.getName().endsWith(".jpg")){
piccount++;
}}
System.out.println("vorhandene Videos:" + vidcount);
System.out.println("vorhandene Bilder:" + piccount);
//Inizialisierung der GUI und des Button-Controllers
try {
FXMLLoader loader = new FXMLLoader(Main.class.getResource("Gui.fxml"));
TabPane tabpane = loader.load();
Controller Controller = loader.getController();
Controller.setMain(this);
Scene scene = new Scene(tabpane);
primaryStage.setScene(scene);
primaryStage.show();
primaryStage.setResizable(false);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void handle(ActionEvent event) {
}
}
Controller.java
Java:
package application;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextArea;
import java.net.URL;
public class Controller {
@FXML Button Lauter;
public Main main;
public void setMain(Main main) {
this.main = main;
}
@FXML
public void handleOpen(ActionEvent event) {
if(event.getSource() == Lauter){
System.out.println("Button klappt");
}
}
}
Gui.fxml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.effect.*?>
<?import javafx.scene.media.*?>
<?import javafx.scene.text.*?>
<?import javafx.scene.layout.*?>
<?import java.lang.*?>
<?import javafx.scene.control.*?>
<TabPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" tabClosingPolicy="UNAVAILABLE" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<tabs>
<Tab closable="false" text=" Fotos ">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<TextFlow fx:id="pics" layoutX="40.0" layoutY="50.0" prefHeight="271.0" prefWidth="520.0" AnchorPane.bottomAnchor="50.0" AnchorPane.leftAnchor="40.0" AnchorPane.rightAnchor="40.0" AnchorPane.topAnchor="50.0" />
<Button fx:id="slideshowpics" layoutX="14.0" layoutY="14.0" mnemonicParsing="false" text="Slideshow: AN" AnchorPane.leftAnchor="25.0" AnchorPane.topAnchor="12.0">
<effect>
<Blend mode="HARD_LIGHT" />
</effect>
</Button>
<Button fx:id="lastpic" layoutX="14.0" layoutY="173.0" mnemonicParsing="false" text="<" AnchorPane.leftAnchor="15.0">
<effect>
<Blend mode="HARD_LIGHT" />
</effect>
</Button>
<Button fx:id="nextpic" layoutX="560.0" layoutY="173.0" mnemonicParsing="false" text=">" AnchorPane.rightAnchor="15.0">
<effect>
<Blend mode="HARD_LIGHT" />
</effect>
</Button>
</children></AnchorPane>
</content>
</Tab>
<Tab closable="false" text=" Videos ">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<Button fx:id="lastvid" layoutX="14.0" layoutY="173.0" mnemonicParsing="false" text="<" AnchorPane.leftAnchor="15.0">
<effect>
<Blend mode="HARD_LIGHT" />
</effect>
</Button>
<Button fx:id="nextvid" layoutX="560.0" layoutY="173.0" mnemonicParsing="false" text=">" AnchorPane.rightAnchor="15.0">
<effect>
<Blend mode="HARD_LIGHT" />
</effect>
</Button>
<MediaView fx:id="vids" fitHeight="271.0" fitWidth="520.0" layoutX="16.0" layoutY="33.0" AnchorPane.bottomAnchor="50.0" AnchorPane.leftAnchor="40.0" AnchorPane.rightAnchor="40.0" AnchorPane.topAnchor="50.0" />
<Button fx:id="vidpause" layoutX="136.0" layoutY="15.0" mnemonicParsing="false" text="Pause">
<effect>
<Blend mode="HARD_LIGHT" />
</effect>
</Button>
<Button fx:id="vidstart" layoutX="57.0" layoutY="15.0" mnemonicParsing="false" text="Start">
<effect>
<Blend mode="HARD_LIGHT" />
</effect>
</Button>
<Button fx:id="volumedown" layoutX="342.0" layoutY="14.0" mnemonicParsing="false" text="Leiser">
<effect>
<Blend mode="HARD_LIGHT" />
</effect>
</Button>
<Button fx:id="volumeup" layoutX="494.0" layoutY="14.0" mnemonicParsing="false" text="Lauter">
<effect>
<Blend mode="HARD_LIGHT" />
</effect>
</Button>
<ProgressBar fx:id="volume" layoutX="388.0" layoutY="14.0" opacity="0.5" prefHeight="26.0" prefWidth="107.0" progress="1.0" />
</children>
</AnchorPane>
</content>
</Tab>
</tabs>
</TabPane>