2017-01-17 12 views
0

그냥 텍스트가 들어있는 jlabel이 있다고 가정 해 보겠습니다. 그리고 나는 광고판에 텍스트를 실행하는 것처럼 텍스트가 매 초마다 계속 변경되기를 원합니다.jlabel을 사용하여 실행중인 텍스트를 만드는 방법은 무엇입니까?

가능합니까? 그렇다면 어떻게?

+0

이것은 일반적으로 "선택 윤곽 효과"라고 ​​불리며 다른 모든 것과 마찬가지로 매우 가능합니다. 텍스트 또는 JLabel을 이동하는 방법을 알고 있습니까? – Carcigenicate

+0

예 알아요. –

+1

그런 지식을 마키 지 스크롤 텍스트로 번역하는 것을 어떻게 막을 수 있습니까? – Carcigenicate

답변

0

JLabel 업데이트를 예약하려면 javax.swing.Timer을 사용해야합니다. 아래의 간단한 코드를 참조하십시오 : AtomicInteger이 필요하지 않다고

JFrame frame = new JFrame("Test"); 
frame.setSize(300, 300); 
JLabel label = new JLabel("This is text!!!"); 
frame.add(label); 
frame.setVisible(true); 

final int labelWidth = 300; 
final AtomicInteger labelPadding = new AtomicInteger(); 
Timer timer = new Timer(20, new ActionListener() { 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     label.setBorder(new EmptyBorder(0, labelPadding.getAndIncrement() % labelWidth, 0, 0)); 
    } 
}); 
timer.start(); 

참고,하지만 당신은 내부 클래스 또는 람다 내부를 사용할 수 있도록 일부 final 홀더가 필요합니다.