2017-01-05 1 views
0

J'écris un programme de lecteur audio dans JavaFX. Pour la conception globale de mon programme, j'utilise BorderPane Layout.Disposition de la bibliothèque musicale JavaFX

Dans

borderPane.setCenter(); 

Je veux faire une bibliothèque de fichiers musicaux. Ici, j'ai fait un exemple de l'apparence de cette bibliothèque.

example of view Library

Pourriez-vous me faire des idées comment dois-je faire? Chaque valeur dans cette mise en page sera basée sur des métadonnées de chansons que je reçois avec jaudiotagger.

+1

Cette question est un peu broad.Best commencez par la conception du modèle de données ('album ',' Artist', 'Song' serait des choix raisonnables de classes). Ensuite, commencez à concevoir les parties de la vue en commençant probablement au niveau' Album'. 'ListView' /' TableView' peut ou non être utile dans ce contexte en fonction du comportement désiré, mais je recommande d'utiliser un ['Cell'-like] (https://docs.oracle.com/javase/8/ javafx/api/javafx/scene/control/Cell.html) stratégie pour réutiliser 'Node's puisque la quantité de données pourrait nécessiter la gestion d'une grande quantité de' Node's sinon, ce qui pourrait entraîner une mauvaise performance/taux de mise à jour du UI. – fabian

Répondre

1

FXML qui se rapprocherait que la mise en page pourrait ressembler à ceci:

<VBox> 
    <BorderPane> 
     <top> <!-- Leave 'top' out if you don't need the Text artist bit --> 
      <HBox>Text Artist</HBox> 
     </top> 
     <left> 
      <VBox> 
       <!-- Image --> 
       <Button>My button</Button> 
       <!-- Photo and button --> 
      </VBox> 
     </left> 
     <center> 
      <VBox> 
       <HBox>Text Album</HBox> 
       <!-- Song --> 
       <!-- Song --> 
       <!-- Song --> 
       <!-- Song --> 
      </VBox> 
     </center> 
    </BorderPane> 

    <!-- More border panes --> 
<VBox> 

Vous pouvez créer cette structure par programme ainsi, bien sûr. Créer un VBox, insérez cependant beaucoup BorderPane s dont vous avez besoin, définissez le top à un HBox si nécessaire, définissez la gauche à un VBox, etc.

+0

Merci de répondre. Oui j'ai pensé à beaucoup de BorderPanes. Mais que se passe-t-il s'il y aura 10 artistes et chacun a 8 albums. Ce ne serait pas trop? –

+0

Avec ces quelques éléments imbriqués, probablement pas. Même si c'est le cas, vous pouvez toujours les charger paresseux lorsque l'utilisateur fait défiler vers le bas. Quoi qu'il en soit, en fin de compte la structure devra ressembler à ce que je vous ai fourni. – Michael