Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 10.09.2015
Сообщений: 54

Отображение массива изображений в JavaFX

22.04.2017, 23:49. Показов 1308. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
При создание карточной игры , столкнулся с следующий проблемой.
Как в JavaFX отображать массив изображений, другими словами руку с картами игрока.
Вот моя не успешная реализация.
вот дизайн отображения карт через ImageView
Кликните здесь для просмотра всего текста

При нажатие на кнопку NEXT массив с изображениями сдвигается в лева.
Но в моём коде есть ошибка (или их больше) а где именно не пойму.
Для более точного понимания смотрите поясняющие изображения внизу топика.
Кстати вот код
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
    @FXML
    private ImageView myCard1;
    @FXML
    private ImageView myCard2;
    @FXML
    private ImageView myCard3;
    @FXML
    private ImageView myCard4;
 
    public void initialize(URL location, ResourceBundle resources) {
        leavePlace.setDisable(true);
        Timeline getMyCards = new Timeline(new KeyFrame(Duration.seconds(0.2), new EventHandler<ActionEvent>() {
 
            @Override
            public void handle(ActionEvent arg0) {
                if (gameStart.equals("true")) {
                    try {
                        myCardHand = main.Push("getMyCards--" + myUsername);
                        if(myCardHand.contains("--") && !myCardHand.equals(preCardHands)){
                            preCardHands = myCardHand;
                            String[] cardsInHand = myCardHand.split("--");
                                for(int i =0; i<cardsInHand.length;i++){
                                    cardsInHand[i] = cardsInHand[i].replaceAll("-", "");
                                    myCardImages[i] = new Image("Cards/"+cardsInHand[i]+".png");
                                    
                                }
                                setCardOnLayout();
                        }
                    } catch (IOException e) {
                    }
                }
            }
 
        }));
 
        getMyCards.setCycleCount(Timeline.INDEFINITE);
        getMyCards.play();
}
 
    @FXML
    public void setCardOnLayout(){
        System.out.println("Length"+myCardHand.length());
            myCard1.setImage(myCardImages[0]);
            myCard2.setImage(myCardImages[1]);
            myCard3.setImage(myCardImages[2]);
            myCard4.setImage(myCardImages[3]);
        
    }
@FXML
    public void NextCard(){
 
        nextCard.setOnMouseClicked(new EventHandler<Event>() {
 
            @Override
            public void handle(Event event) {
                Image firstCard = myCardImages[0];
                for(int i = 0; i < myCardImages.length-1;i++){
                    myCardImages[i] = myCardImages[i+1];
                }
                myCardImages[myCardImages.length-1] = firstCard;
                setCardOnLayout();
            }
             
        });
    }

Отображения проблемы.
Кликните здесь для просмотра всего текста

1.Нажатий на кнопку NEXT 0.

3.Нажатий на кнопку NEXT 2.

Пустые ячейки это отображения пустых изображений.

И.т.д 36 раз для полного прохождения массива.
Как решить этот конфуз. Убрать NULL элементы из массива может быть.
Или существует другой способ отображения массива изображений.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.04.2017, 23:49
Ответы с готовыми решениями:

Отображение массива изображений.
Нужно вывести на форму 16 картинок. Для начала хотя бы в ряд.... Я попробовал такое: QPixmap p; for(int i=0; i&lt;16;i++) ...

Отображение данных в TableView JavaFX
Controller1: import javafx.collections.FXCollections; import javafx.collections.ObservableList; import...

JavaFX Передача и отображение данных между двумя окнами
Добрый день. столкнулся с такой проблемой: есть основное окно и модальное, в модальном я заношу некоторые данные в поля, после чего по...

1
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
24.04.2017, 19:34
Для начала
Java
1
2
3
 } catch (IOException e) {
    e.printStackTrace();
}
Пустой catch-блок - это говнокод на 146%.

Если ситуация не прояснится, то можно выкинуть Timeline и добиться необходимого результата просто по нажатию кнопки. Думаю, что проблема в изменении массива в многопоточном режиме.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.04.2017, 19:34
Помогаю со студенческими работами здесь

Отображение изображений
Привет всем. помогите разобраться в отображении изображений на сайте. сохраняется в папке но на сайт картинку вывести никак не могу. что...

Отображение изображений
Здравствуйте форумчане! Так как с java script-ом не приходилось работать(всегда работал только на php ) нашел интернете похожую...

Отображение svg-изображений в ff и IE
Доброго времени суток! Занимаюсь вёрсткой сайта, возникла проблема с отображением SVG-изображений, добавленных через CSS. Сайт:...

Загрузка и отображение изображений
Интересует рабочий пример этого на c++. За ранее благодарен.

Динамическое отображение изображений
Помогите, а то я в ступоре. Вообщем какова задача: Сервер возвращает json с урлами изображений. Я их заганяю в arraylist. Есть адаптер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru