2017-01-03 1 views
-5

Je vais aller droit au but. Je construis un système serveur-client qui sera essentiellement un stockage en nuage. Par conséquent, le serveur enverra au client une liste de fichiers et de dossiers au moment de la connexion et le client les montrera à l'utilisateur. Ce que je cherche, c'est une vue JavaFx qui montrera ces contenus à la manière d'un ordinateur de bureau: chacun avec sa propre icône et un nom en dessous.Existe-t-il une vue de type bureau pour l'application de bureau JavaFx?

Je suis convaincu qu'il existe de meilleures façons de faire cela qu'un GridView ad hoc complexe, mais il semble que je suis incapable de les trouver.

quelqu'un Hope me aider ...

Merci à tous à l'avance!

+0

Non au moins pas dans controlsfx ou la bibliothèque standard et l'ajustement 'GridView' n'est pas si compliqué, mais peut ne pas être exactement ce dont vous avez besoin, car contrairement à un ordinateur de bureau, il ajoute automatiquement une barre de défilement ... – fabian

+2

«mode de bureau comme la mode» changent si vite .. de cette façon dont vous parlez? De plus, vous devriez écrire un problème plus spécifique pour être sur le sujet depuis la demande d'API ou de tutoriel/guide n'est pas sur les sujets de SO. – AxelH

Répondre

1

Vous devriez essayer d'utiliser le volet de flux de JavaFX, il va ajouter des enfants dans le flux. Vous pouvez leur donner des icônes dans des conditions comme si vous obteniez le répertoire puis donner l'icône de dossier autre icône de fichier comme ceci.

Reportez-vous à cela pour la Flow Pane et Layout building

Exemple:

import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.layout.FlowPane; 
import javafx.stage.Stage; 

public class DemoFile extends Application { 

@Override 
public void start(Stage primaryStage) throws Exception { 
    FlowPane flowPane = new FlowPane(); 
    for (int i = 0; i < 20; i++) { 
     Button button = new Button("File Name or folder name"); 
     button.setPrefSize(200, 200); 
     flowPane.getChildren().add(button); 
    } 
    Scene scene = new Scene(flowPane); 
    primaryStage.setScene(scene); 
    primaryStage.show(); 
} 

public static void main(String[] args) { 
    launch(args); 
} 
} 

Essayez cet exemple dans lequel j'ai ajouté 20 boutons dans le volet de flux, mais vous pouvez changer le composant que vous le souhaitez, vous pouvez également définir le remplissage du volet de flux pour donner l'espacement entre les enfants du volet de flux

+0

@Axelh vérifier l'exemple de code –

+0

@AxelH Merci Nice édition –

+0

Vous êtes les bienvenus, cela suffit pour être une réponse, mais aucune idée si c'est ce que l'OP veut. – AxelH