У меня есть 2 кнопки, которым требуется доступ к одному и тому же массиву, и он выдает ошибку. Локальная переменная newCards , определенная в прилагаемой области видимости, должна быть конечной или фактически конечной.
Я что-то не так делаю, то есть против правил Java?
Это код, который я написал до сих пор:
final ArrayList<Integer> newDeck = new ArrayList<Integer>();
ShuffleFunctions.shuffleDeck(newDeck);
int number = Integer.parseInt(cardNbr.getText());
ArrayList<Integer> newCards = new ArrayList<Integer>();
newCards = ShuffleFunctions.randomCardsSelector(number, newDeck);
submitBtn.setOnAction(e->{
fetchBtn.setDisable(false);
submitBtn.setDisable(true);
for(int i = 0; i<number; i++) {
int x = newCards.get(i);
String url = new String("bin/"+ x +".png");
File file1 = new File(url);
Image image1 = new Image(file1.toURI().toString());
ImageView imageView = new ImageView(image1);
imageView.setFitHeight(90);
imageView.setFitWidth(90);
drawnCards.getChildren().add(imageView);
}
});
fetchBtn.setOnAction(e->{
fetchBtn.setDisable(true);
ArrayList<Integer> selectedNewCard= new ArrayList<Integer>();
selectedNewCard = ShuffleFunctions.randomCardsSelector(1, newDeck);
int s = selectedNewCard.get(0);
String url = new String("bin/" + s + ".png");
File file2 = new File(url);
Image img = new Image(file2.toURI().toString());
drawnCard.setImage(img);
drawnCard.setFitHeight(150);
drawnCard.setFitWidth(150);
});
drawCardBtn.setOnAction(e->{
drawCardBtn.setDisable(false);
ArrayList<Integer> oneCard = new ArrayList<Integer>();
oneCard = ShuffleFunctions.randomCardsSelector(1,newCards);
String url = new String("bin/" /*x*/ + ".png");
File file3 = new File(url);
Image image = new Image(file3.toURI().toString());
drawnCard.setImage(image);
drawnCards.getChildren().get(0).setStyle("-fx-opacity: 0.5");
});