package timeflow.app.ui;
|
|
import javax.swing.*;
|
import java.awt.*;
|
import java.awt.event.*;
|
|
public class WaitingDialog extends JFrame {
|
|
Timer timer;
|
|
public static void main(String[] args)
|
{
|
new WaitingDialog("Testing", "Hello, world!");
|
}
|
|
public WaitingDialog(String title, String message)
|
{
|
super(title);
|
Throbber throbber=new Throbber();
|
timer=new Timer(50, throbber);
|
getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));
|
getContentPane().add(throbber);
|
getContentPane().add(new JLabel(message));
|
setBounds(400,400,300,150);
|
setVisible(true);
|
timer.start();
|
}
|
|
public void stop()
|
{
|
timer.stop();
|
setVisible(false);
|
}
|
|
class Throbber extends JPanel implements ActionListener
|
{
|
int count=0;
|
public void paintComponent(Graphics g)
|
{
|
int w=getSize().width, h=getSize().height;
|
int c=count%256;
|
g.setColor(new Color(c,c,c));
|
g.fillRect(0,0,w,h);
|
}
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
repaint();
|
count+=10;
|
}
|
|
public Dimension getPreferredSize()
|
{
|
return new Dimension(30,100);
|
}
|
}
|
}
|