JavaFX - Espace de disque avec File ProgressBar
import java.io.File;
import java.text.NumberFormat;
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.ProgressBar;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
/**
* JavaFX App
*/
public class App extends Application {
@Override
public void start(Stage stage) {
// Positionnement vertical centré espacé de 10px
VBox root = new VBox();
root.setAlignment(Pos.CENTER);
root.setSpacing(10);
// Le dossier racine
File file = new File("C:/");
// Espace libre et total
double usableSpace = file.getUsableSpace();
double totalSpace = file.getTotalSpace();
// Calcule l'espace utilisé
long usedSpace = (long)(totalSpace - usableSpace);
ProgressBar progressBar = new ProgressBar();
// Calcule le pourcentage
progressBar.setProgress(1 - (usableSpace / totalSpace));
// Formateur
NumberFormat formatter = NumberFormat.getInstance();
// Formate les libellés
String formattedUsedSpace = String.format("Espace utilisé : %s octets", formatter.format(usedSpace));
String formattedFreeSpace = String.format("Espace libre : %s octets", formatter.format((long) usableSpace));
String formattedTotalSpace = String.format("Espace total : %s octets", formatter.format((long) totalSpace));
// Ajoute les composants à l'élément racine
root.getChildren().add(new Label("Utilisation du disque C:/"));
root.getChildren().add(progressBar);
root.getChildren().add(new Label(formattedUsedSpace));
root.getChildren().add(new Label(formattedFreeSpace));
root.getChildren().add(new Label(formattedTotalSpace));
Scene scene = new Scene(root, 640, 480);
stage.setScene(scene);
stage.setTitle("Informations C:/");
stage.show();
}
public static void main(String[] args) {
launch();
}
}
RĂ©sultat :
Commentaires
Enregistrer un commentaire