Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package no.nowak.pw.exercises;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JProgressBar;
- import javax.swing.JTextField;
- public class Exercise7
- {
- static JLabel resultLabel;
- static JLabel countingTimeLabel, onPermuteLabel, endTimeLabel,startTimeLabel;
- JPanel jPanel;
- JFrame jFrame;
- JButton jButton, jStopButton;
- static JProgressBar jProgressBar;
- static JTextField nFieldText;
- Exercise7Permutation ePermutation;
- Exercise7Monitor eMonitor;
- Thread permutationThread, monitorThread;
- public Exercise7()
- {
- ePermutation = new Exercise7Permutation();
- permutationThread = new Thread(ePermutation);
- eMonitor = new Exercise7Monitor();
- monitorThread = new Thread(eMonitor);
- initPanel();
- }
- static int permutation(int i)
- {
- if (i < 1)
- return 1;
- else
- return i * permutation(i - 1);
- }
- public void initPanel()
- {
- jPanel = new JPanel();
- jFrame = new JFrame("Exercise 7");
- jStopButton = new JButton("Stop");
- jStopButton.addActionListener(new ActionListener()
- {
- @Override
- public void actionPerformed(ActionEvent e)
- {
- monitorThread.interrupt();
- }
- });
- jButton = new JButton("Start");
- jButton.addActionListener(new ActionListener()
- {
- @Override
- public void actionPerformed(ActionEvent e)
- {
- int n = Integer.parseInt(nFieldText.getText());
- resultLabel.setText(factorial(n).toString());
- permutationThread.start();
- monitorThread.start();
- jProgressBar.setMinimum(0);
- jProgressBar.setMaximum(factorial(n));
- }
- });
- nFieldText = new JTextField();
- nFieldText.addActionListener(new ActionListener()
- {
- @Override
- public void actionPerformed(ActionEvent e)
- {
- if (nFieldText.equals(""))
- jButton.setEnabled(false);
- else
- jButton.setEnabled(true);
- }
- });
- resultLabel = new JLabel("Result n! ");
- startTimeLabel = new JLabel("Start time: ");
- endTimeLabel = new JLabel("End Time: ");
- countingTimeLabel = new JLabel("Counting Time: ");
- onPermuteLabel = new JLabel("Permutations count: ");
- jProgressBar = new JProgressBar();
- jPanel.setLayout(new GridLayout(5, 0));
- jPanel.add(jButton);
- jPanel.add(jStopButton);
- jPanel.add(nFieldText);
- jPanel.add(countingTimeLabel);
- jPanel.add(resultLabel);
- jPanel.add(startTimeLabel);
- jPanel.add(endTimeLabel);
- jPanel.add(onPermuteLabel);
- jPanel.add(jProgressBar);
- jFrame.add(jPanel);
- jFrame.setSize(600, 300);
- jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- jFrame.setVisible(true);
- }
- Integer factorial(int i)
- {
- if (i < 1)
- return 1;
- else
- return i * factorial(i - 1);
- }
- public static void setCountingTime(Double time)
- {
- countingTimeLabel.setText(countingTimeLabel.getText() + time.toString());
- }
- public static void setOnPermute(Integer permuteCount)
- {
- onPermuteLabel.setText(onPermuteLabel.getText() + permuteCount.toString());
- }
- public static Integer getNText()
- {
- return Integer.parseInt(nFieldText.getText());
- }
- public static void setStartTime(Double time)
- {
- startTimeLabel.setText(startTimeLabel.getText() + time.toString());
- }
- public static void setEndTime(Double time)
- {
- endTimeLabel.setText(endTimeLabel.getText() + time.toString());
- }
- public static void setProgressBarValue(int val)
- {
- jProgressBar.setValue(val);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement