import java.awt.BorderLayout; import java.awt.Dimension; import java.util.Formatter; import javax.swing.JEditorPane; import javax.swing.SwingUtilities; import org.jdesktop.animation.timing.Animator; import org.jdesktop.animation.timing.TimingTarget; import org.jdesktop.animation.timing.TimingTargetAdapter; public class TimingSample1 extends BasicSample { private String baseText = "

No. 1 消える文字

消えます、消えます

"; private JEditorPane pane; public TimingSample1() { super(); String text = new Formatter().format(baseText, 0).toString(); pane = new JEditorPane("text/html", text); pane.setEditable(false); frame.add(pane, BorderLayout.CENTER); frame.setSize(new Dimension(400, 200)); frame.setVisible(true); } @Override protected void start() { TimingTarget target = new TimingTargetAdapter() { public void end() { clear(); } public void timingEvent(float fraction) { int color = (int)(fraction * 0xff); String text = new Formatter().format(baseText, color).toString(); pane.setText(text); System.out.println("Fraction: " + fraction); } }; Animator animator = new Animator(1000, target); animator.start(); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new TimingSample1(); } }); } }