Istvan

FastReader

Dec 22nd, 2012
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.68 KB | None | 0 0
  1. import java.awt.GridLayout;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import java.util.Timer;
  5. import java.util.TimerTask;
  6. import javax.swing.JButton;
  7. import javax.swing.JFrame;
  8. import javax.swing.JLabel;
  9. import javax.swing.JScrollPane;
  10. import javax.swing.JSlider;
  11. import javax.swing.JTextArea;
  12. import javax.swing.event.ChangeEvent;
  13. import javax.swing.event.ChangeListener;
  14.  
  15. public class FastReader extends JFrame implements ActionListener, ChangeListener {
  16.     class DoReadTask extends TimerTask {
  17.         String[] textSplit = inputArea.getText().split("\\ ");
  18.         int i = 0;
  19.        
  20.         public void run() {        
  21.             if(textSplit.length>0){
  22.                 text.setText(textSplit[i]);
  23.                 ++i;
  24.                 if(i==textSplit.length){
  25.                     timer.cancel();
  26.                     read = false;          
  27.                 }
  28.             } else {
  29.                 timer.cancel();
  30.                 read = false;
  31.             }
  32.         }
  33.     }
  34.    
  35.     private JTextArea inputArea = new JTextArea("Írja be a szöveget");
  36.     private JScrollPane scrollArea = new JScrollPane(inputArea);
  37.     private JButton doReadButton = new JButton("Mehet!");
  38.     private JButton stopReadButton = new JButton("Állj!");
  39.     private JSlider slider = new JSlider();
  40.     private JLabel sliderLabel = new JLabel("Gyorsaság: " + Integer.toString(slider.getValue()), JLabel.CENTER);
  41.     private JLabel text = new JLabel("Ide fogom kiírni!", JLabel.CENTER);
  42.     private boolean read = false;
  43.     private Timer timer;
  44.    
  45.     public FastReader(){
  46.         setDefaultCloseOperation(EXIT_ON_CLOSE);
  47.         getContentPane().setLayout(new GridLayout(0, 1));
  48.         setBounds(60, 50, 900, 500);
  49.         setResizable(false);
  50.         setVisible(true);
  51.    
  52.         doReadButton.setActionCommand("startRead");
  53.         doReadButton.addActionListener(this);
  54.         stopReadButton.setActionCommand("stopRead");
  55.         stopReadButton.addActionListener(this);
  56.        
  57.         slider.addChangeListener(this);
  58.  
  59.         getContentPane().add(text);    
  60.         getContentPane().add(doReadButton);
  61.         getContentPane().add(stopReadButton);
  62.         getContentPane().add(sliderLabel);
  63.         getContentPane().add(slider);
  64.         getContentPane().add(scrollArea);
  65.     }
  66.  
  67.     @Override
  68.     public void actionPerformed(ActionEvent e) {
  69.         if(e.getActionCommand().equals("startRead")){
  70.             if(false==read){
  71.                 read = true;
  72.                 int sliderValue = 301 - slider.getValue() * 2;
  73.                 timer = new Timer();
  74.                 timer.schedule(new DoReadTask(), 700, sliderValue);
  75.             }
  76.         }
  77.         if(e.getActionCommand().equals("stopRead")){
  78.             read = false;
  79.             timer.cancel();
  80.         }
  81.     }
  82.  
  83.     @Override
  84.     public void stateChanged(ChangeEvent che) {
  85.         try {
  86.             sliderLabel.setText("Gyorsaság: " + Integer.toString(slider.getValue()));
  87.         } catch (Exception e){
  88.             e.printStackTrace();
  89.         }
  90.     }
  91.        
  92.     public static void main(String args[]){
  93.         FastReader fastReader = new FastReader();
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment