2011-07-17 6 views
2

JList의 맨 위에 JComponents를 삽입하고 싶습니다. 특히, 항목을 푸시 다운하는 것처럼 보이게하려고합니다. 애니메이션에 필요한 로직이 있다고 생각하지만 JList에 애니메이션을 적용하는 방법을 모르겠습니다.애니메이션을 사용하여 JList에 삽입

+2

무엇이 질문입니까? –

답변

0

이는의의 ListCellRenderer 각 노래에 대한 애니메이션의 진행 상황을 추적 할 해시 맵을 사용합니다. 애니메이션은 기본적으로 ListCellRenderer가 0에서 100까지 반환하는 JComponent의 높이를 증가시키고 새 항목이 삽입되면 타이머가 시작되어 애니메이션이 완료 될 때까지 repaint 메서드를 계속 호출합니다. 처음부터이 모든 것을 가지고 있었지만 핵심은 ListCellRenderer를 각 반복마다 새로운 것으로 교체하지 않으면 애니메이션이 작동하지 않는 것입니다.

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

먼저 구성 요소를 BufferedImage으로 렌더링 한 다음 GlassPane (실제 구성 요소 위)에 애니메이션을 렌더링해야합니다.

이 관련 기사 다음과 같습니다 How to use glass pane for animation (SwingX and Timingframework) 내가하고 결국 한 무엇

+0

나는 그것이 내가 원하는 것을 생각하지 않는다. 새로운 구성 요소가 이동하는 동안 다른 구성 요소가 표시되도록해야합니다. – HahaHortness

관련 문제