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 TimingSample2 extends BasicSample { private String baseText = "
文字が出てくる
"; private JEditorPane pane; public TimingSample2() { super(); String text = new Formatter().format(baseText, 0xff).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)((1.0 - fraction) * 0xff); String text = new Formatter().format(baseText, color).toString(); pane.setText(text); } }; Animator animator = new Animator(5000, target); animator.start(); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new TimingSample2(); } }); } }