import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*; 
public class Test extends JFrame
{    public Test(String s)
    {
super(s);
init();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(new Dimension(400, 300));
setVisible(true);
    }    MyProgressBar bar;
    javax.swing.Timer timer;
    
    private void init()
    {
bar = new MyProgressBar("$(ADc:C(B");
getContentPane().add(bar, BorderLayout.SOUTH);

timer = new javax.swing.Timer(18, createTextLoadAction());
timer.start();    }    private Action createTextLoadAction() 
    {
return new AbstractAction("move action") 
{
    public void actionPerformed (ActionEvent e) 
    {
if(bar.getValue() < bar.getMaximum()) 
{
    bar.setValue(bar.getValue() + 1);

else 
{
    bar.setValue(0);
}
    }
};
    }    class MyProgressBar extends JProgressBar
    {
private String str;

public MyProgressBar(String str)
{
    this.str = str;
}
public void paintComponent(Graphics g)
{
    super.paintComponent(g);
    g.setColor(bar.getBackground());
    g.fillRect(1, 1, getWidth() - 1, getHeight() -1);
    g.setColor(Color.black);
    g.drawString(str, getWidth() * getValue() / 100, 10);
}    }
    public static void main(String[] args)
    {
try
{
    Test t = new Test("Test");
}
catch (Exception e)
{
    e.printStackTrace();
}
    }
}