2017-01-05 9 views
0

Я пишу программу аудиоплеера в JavaFX. Для общего дизайна в моей программе я использую BorderPane Layout.Макет библиотеки музыки JavaFX

В

borderPane.setCenter(); 

Я хочу сделать библиотеку музыкальных файлов. Здесь я сделал пример, как эта библиотека может выглядеть.

example of view Library

Не могли бы вы принести мне какие-либо идеи, как я должен это сделать?

Каждое значение в этом макете будет основано на метаданных песен, которые я получаю с jaudiotagger.

+1

Этот вопрос немного broad.Best начать проектирование модели данных ('Album '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' Были бы разумным выбором классов). Затем начните составлять части представления, начиная, вероятно, на уровне «Album». 'ListView' /' TableView' может или не может быть полезным в этом контексте в зависимости от желаемого поведения, но я рекомендую использовать ['Cell'-like] (https://docs.oracle.com/javase/8/ javafx/api/javafx/scene/control/Cell.html) стратегия повторного использования 'Node', поскольку количество данных может потребовать управления большим количеством 'Node' в противном случае, что может привести к плохой производительности/скорости обновления UI. – fabian

ответ

1

FXML что бы приблизительно, что макет может выглядеть следующим образом:

<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> 

Вы могли бы создать эту структуру программно, а также, конечно. Создать VBox, вставить однако многие BorderPane s вам нужно, установите top в HBox, если требуется, установите слева на VBox и т.д.

+0

Благодарим вас за ответ. Да, я думал о многих BorderPanes. Но что, если будет 10 художников, и у каждого будет 8 альбомов. Разве это не слишком много? –

+0

С этими небольшими вложенными элементами, вероятно, нет. Даже если есть, вы всегда можете лениво загружать их, когда пользователь прокручивается вниз. Независимо, в конечном итоге структура должна выглядеть примерно так, как я вам предоставил. – Michael