Advertisement
Guest User

Untitled

a guest
May 6th, 2016
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.54 KB | None | 0 0
  1. package no.nowak.pw.exercises;
  2.  
  3. import java.awt.GridLayout;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6.  
  7. import javax.swing.JButton;
  8. import javax.swing.JFrame;
  9. import javax.swing.JLabel;
  10. import javax.swing.JPanel;
  11. import javax.swing.JProgressBar;
  12. import javax.swing.JTextField;
  13.  
  14. public class Exercise7
  15. {
  16.     static JLabel resultLabel;
  17.     static JLabel countingTimeLabel, onPermuteLabel, endTimeLabel,startTimeLabel;
  18.     JPanel jPanel;
  19.     JFrame jFrame;
  20.     JButton jButton, jStopButton;
  21.     static JProgressBar jProgressBar;
  22.     static JTextField nFieldText;
  23.  
  24.     Exercise7Permutation ePermutation;
  25.     Exercise7Monitor eMonitor;
  26.    
  27.     Thread permutationThread, monitorThread;
  28.  
  29.     public Exercise7()
  30.     {
  31.         ePermutation = new Exercise7Permutation();
  32.         permutationThread = new Thread(ePermutation);  
  33.        
  34.         eMonitor = new Exercise7Monitor();
  35.         monitorThread = new Thread(eMonitor);
  36.    
  37.         initPanel();
  38.     }
  39.  
  40.     static int permutation(int i)
  41.     {
  42.         if (i < 1)
  43.             return 1;
  44.         else
  45.             return i * permutation(i - 1);
  46.     }
  47.  
  48.     public void initPanel()
  49.     {
  50.         jPanel = new JPanel();
  51.         jFrame = new JFrame("Exercise 7");
  52.         jStopButton = new JButton("Stop");
  53.         jStopButton.addActionListener(new ActionListener()
  54.         {
  55.             @Override
  56.             public void actionPerformed(ActionEvent e)
  57.             {
  58.                 monitorThread.interrupt();
  59.             }
  60.         });
  61.         jButton = new JButton("Start");
  62.         jButton.addActionListener(new ActionListener()
  63.         {
  64.             @Override
  65.             public void actionPerformed(ActionEvent e)
  66.             {
  67.                 int n = Integer.parseInt(nFieldText.getText());
  68.                 resultLabel.setText(factorial(n).toString());
  69.                 permutationThread.start();
  70.                 monitorThread.start();
  71.                 jProgressBar.setMinimum(0);
  72.                 jProgressBar.setMaximum(factorial(n));
  73.             }
  74.         });
  75.        
  76.         nFieldText = new JTextField();
  77.         nFieldText.addActionListener(new ActionListener()
  78.         {
  79.             @Override
  80.             public void actionPerformed(ActionEvent e)
  81.             {
  82.                 if (nFieldText.equals(""))
  83.                     jButton.setEnabled(false);
  84.                 else
  85.                     jButton.setEnabled(true);
  86.             }
  87.         });
  88.        
  89.         resultLabel = new JLabel("Result n! ");
  90.         startTimeLabel = new JLabel("Start time: ");
  91.         endTimeLabel = new JLabel("End Time: ");
  92.         countingTimeLabel = new JLabel("Counting Time: ");
  93.         onPermuteLabel = new JLabel("Permutations count: ");
  94.         jProgressBar = new JProgressBar();
  95.        
  96.         jPanel.setLayout(new GridLayout(5, 0));
  97.         jPanel.add(jButton);
  98.         jPanel.add(jStopButton);
  99.         jPanel.add(nFieldText);
  100.         jPanel.add(countingTimeLabel);
  101.         jPanel.add(resultLabel);
  102.         jPanel.add(startTimeLabel);
  103.         jPanel.add(endTimeLabel);
  104.         jPanel.add(onPermuteLabel);
  105.         jPanel.add(jProgressBar);
  106.        
  107.  
  108.         jFrame.add(jPanel);
  109.         jFrame.setSize(600, 300);
  110.         jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  111.         jFrame.setVisible(true);
  112.     }
  113.  
  114.     Integer factorial(int i)
  115.     {
  116.         if (i < 1)
  117.             return 1;
  118.         else
  119.             return i * factorial(i - 1);
  120.     }
  121.    
  122.     public static void setCountingTime(Double time)
  123.     {
  124.         countingTimeLabel.setText(countingTimeLabel.getText() + time.toString());
  125.     }
  126.    
  127.     public static void setOnPermute(Integer permuteCount)
  128.     {
  129.         onPermuteLabel.setText(onPermuteLabel.getText() + permuteCount.toString());
  130.     }
  131.    
  132.     public static Integer getNText()
  133.     {
  134.         return Integer.parseInt(nFieldText.getText());
  135.     }
  136.    
  137.     public static void setStartTime(Double time)
  138.     {
  139.         startTimeLabel.setText(startTimeLabel.getText() + time.toString());
  140.     }
  141.    
  142.     public static void setEndTime(Double time)
  143.     {
  144.         endTimeLabel.setText(endTimeLabel.getText() + time.toString());
  145.     }
  146.     public static void setProgressBarValue(int val)
  147.     {
  148.         jProgressBar.setValue(val);
  149.     }
  150.    
  151.    
  152.  
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement