Вставить в JList с анимацией - PullRequest
2 голосов
/ 17 июля 2011

Я хотел бы вставить JComponents в верхнюю часть JList. В частности, я хочу, чтобы это выглядело так, как будто предмет опущен вниз. Я думаю, что у меня есть необходимая логика для анимации, но я не знаю, как заставить ее анимировать JList.

Ответы [ 2 ]

2 голосов
/ 17 июля 2011

Вам необходимо сначала визуализировать ваш компонент в BufferedImage, а затем визуализировать анимацию в GlassPane (выше фактического компонента).

Это выглядиткак в похожей статье: Как использовать стеклянную панель для анимации (SwingX и Timingframework)

0 голосов
/ 23 июля 2011

Что я в итоге сделал, так это то, что ListCellRenderer использует хеш-карту для отслеживания хода анимации для каждой песни. Анимация в основном просто увеличивает высоту JComponent, который ListCellRenderer возвращает с 0 до 100, и когда вставляется новый элемент, запускается таймер, который продолжает вызывать метод перекраски, пока анимация не завершится. У меня было все это с самого начала, но главное, чтобы анимация не работала, пока я не заменил ListCellRenderer новым на каждой итерации.

public void actionPerformed(ActionEvent event) {
    cards.setCellRenderer(new ItemRenderer(cardsPane));
    repaint();
    if(animation.done){
        timer.stop()
    }
}
...