Label myLabelOne = new Label("Some Text");
Label myLabelTwo
Label myLabelThree ... 2000 таких лейбелов...
это уже создано .
можно ли упростить следующее . чтобы не писать еще 2000 раз OnMouseClicked/
myLabelOne.setOnMouseClicked(ev -> {
new MediaPlayer(new Media(new File("myproj\\src\\audio\\1.mp3").toURI().toString())).play();
});
myLabelTwo.setOnMouseClicked(ev -> {
new MediaPlayer(new Media(new File("myproj\\src\\audio\\2.mp3").toURI().toString())).play();
});
myLabelThree.setOnMouseClicked(ev -> {
new MediaPlayer(new Media(new File("myproj\\src\\audio\\3.mp3").toURI().toString())).play();
});
VBox vBox = new VBox();
vBox.getChildren().addAll(myLabls,.,.,.,);
и эта одна страница. а таких страниц допустим 100 и в каждой странице более тысячи слов.
Помогите пожалуйста как можно с помощью MAP , HASHMAP or LIST и циклов упростит работу.
-попробовал вот как но не получилось...
создал Лист
List<Label> list= new ArrayList<>();
создал класс который будет создавать Label
class Creator{
Label method(int a){
if(a==1){
Label labelOne = new Label("Sometext");
return labelOne
}
else if(a==2){
Label labelTwo = new Label("Sometext");
return labelTwo
}
. . .
return null;
}
}
class MyClass{
for( int i=0; i<2000; i++ ) {
list.add( method(i) );
}
VBox vBox = new VBox();
HBox hBox = new HBox();
HBox hBoxa = new HBox();...
vBox.getChildren.addAll(hBox, hBoxa, hBoxb, . . .);
hBox.getChildren().addAll(list.get(0), list.get(1), list.get(2), list.get(3), list.get(4), list.get(5));
...
Вот здесь как быть не знаю. Если кликнули Лейбл за индексом ноль пусть проигрывается 0.mp3 если list.get(1) то 1.mp3
как это сделать не знаю.
for(int y=0; y<2000; y++)
...setOnMouseClicked(ev -> {
new MediaPlayer(new Media(new File("myproj\\src\\audio\\....mp3").toURI().toString())).play();
});
}