Advertisement
Mouamle

Text animator

Mar 5th, 2016
404
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.82 KB | None | 0 0
  1. package mouamle.animation;
  2.  
  3. import java.awt.EventQueue;
  4. import java.awt.Font;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7.  
  8. import javax.swing.JButton;
  9. import javax.swing.JFrame;
  10. import javax.swing.JLabel;
  11. import javax.swing.JTextField;
  12. import javax.swing.SwingConstants;
  13.  
  14. import mouamle.uilib.Frame;
  15. import mouamle.uilib.Label;
  16. import mouamle.uilib.TextBox;
  17.  
  18. public class AnimatedText implements Runnable{
  19.  
  20.     private JFrame frmAnimatedText;
  21.     private JTextField textField;
  22.     private JLabel lblNewLabel;
  23.     private TextBox textBox;
  24.    
  25.     private String text;
  26.     private long delay;
  27.    
  28.     Thread t;
  29.     public static void main(String[] args) {
  30.         EventQueue.invokeLater(new Runnable() {
  31.             public void run() {
  32.                 try {
  33.                     AnimatedText window = new AnimatedText();
  34.                     window.frmAnimatedText.setVisible(true);
  35.                 } catch (Exception e) {
  36.                     e.printStackTrace();
  37.                 }
  38.             }
  39.         });
  40.     }
  41.  
  42.    
  43.     public AnimatedText() {
  44.         initialize();
  45.     }
  46.  
  47.     private void initialize() {
  48.         frmAnimatedText = new Frame();
  49.         frmAnimatedText.setTitle("Animated text");
  50.         frmAnimatedText.setBounds(100, 100, 450, 300);
  51.         frmAnimatedText.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  52.        
  53.         JButton btnNewButton = new JButton("Animate");
  54.         btnNewButton.addActionListener(new ActionListener() {
  55.             public void actionPerformed(ActionEvent arg0) {
  56.                 text = textField.getText();
  57.                 delay = Long.parseLong(textBox.getText());
  58.                 animateText();
  59.             }
  60.         });
  61.         btnNewButton.setBounds(10, 211, 424, 50);
  62.         frmAnimatedText.getContentPane().add(btnNewButton);
  63.        
  64.         lblNewLabel = new Label(" ");
  65.         lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 30));
  66.         lblNewLabel.setText(" ");
  67.         lblNewLabel.setBounds(10, 11, 424, 50);
  68.         frmAnimatedText.getContentPane().add(lblNewLabel);
  69.        
  70.         textField = new TextBox("DARK_GRAY");
  71.         textField.setText("Mouamle");
  72.         textField.setHorizontalAlignment(SwingConstants.CENTER);
  73.         textField.setFont(new Font("Tahoma", Font.PLAIN, 35));
  74.         textField.setBounds(10, 67, 424, 50);
  75.         frmAnimatedText.getContentPane().add(textField);
  76.         textField.setColumns(10);
  77.        
  78.         textBox = new TextBox("DARK_GRAY");
  79.         textBox.setHorizontalAlignment(SwingConstants.CENTER);
  80.         textBox.setText("120");
  81.         textBox.setToolTipText("Time");
  82.         textBox.setFont(new Font("Tahoma", Font.BOLD, 39));
  83.         textBox.setColumns(10);
  84.         textBox.setBounds(118, 128, 214, 50);
  85.         frmAnimatedText.getContentPane().add(textBox);
  86.     }
  87.    
  88.     public void animateText(){
  89.         t = new Thread(this);
  90.         t.start();
  91.     }
  92.  
  93.     @Override
  94.     public void run() {
  95.         if ( !lblNewLabel.getText().equalsIgnoreCase(" ")){
  96.             lblNewLabel.setText(" ");
  97.         }
  98.         char[] c = text.toCharArray();
  99.         for (char d : c) {
  100.             lblNewLabel.setText(lblNewLabel.getText() + d);
  101.             try {
  102.                 Thread.sleep(delay);
  103.             } catch (InterruptedException e) {}
  104.         }
  105.         t.interrupt();
  106.     }
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement