public GraphicInterface(final TaskManager tManager) {

        super("Running Task Program");
        setBounds(500,100,570,520);
        setLayout(null);
        this.tManager = tManager;
        name = "gg";
        laTitle.setBounds(120,10,100,15);
        add(laTitle);

        laActiveTasks.setBounds(400,10,100,15);
        add(laActiveTasks);

        tTasks.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        tActiveTasks.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

        spTasks.setBounds(15,35,280,250);
        spTasks.setVisible(true);
        spTasks.setAutoscrolls(true);
        add(spTasks);

        spActiveTasks.setBounds(310,35,230,250);
        spActiveTasks.setVisible(true);
        spActiveTasks.setAutoscrolls(true);
        add(spActiveTasks);

        tableModel.setColumnIdentifiers(new Object[] {"Name",
                "Delay",
                "Time",
                "Number Of Starts"});
        tableModel2.setColumnIdentifiers(new Object[] {"Name",
                "Start Time"});
        tTasks.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
        tTasks.getColumnModel().getColumn(0).setPreferredWidth(65);
        tTasks.getColumnModel().getColumn(1).setPreferredWidth(45);
        tTasks.getColumnModel().getColumn(2).setPreferredWidth(40);
        tTasks.getColumnModel().getColumn(3).setPreferredWidth(130);

        btStart.setBounds(100,295,95,25);
        add(btStart);

        btStop.setBounds(320,295,95,25);
        add(btStop);
        btUpdate.setBounds(420,295,110,25);
        add(btUpdate);

        laAddTask.setBounds(120,330,110,15);
        add(laAddTask);

        laTaskName.setBounds(15,360,100,15);
        add(laTaskName);

        tfTaskName.setBounds(125,355,120,25);
        tfTaskName.setFont(new Font("Courier", 0, 12));
        add(tfTaskName);

        laTaskDelay.setBounds(15,390,100,15);
        add(laTaskDelay);

        tfTaskDelay.setBounds(125,385,120,25);
        tfTaskDelay.setFont(new Font("Courier", 0, 12));
        add(tfTaskDelay);

        laTaskTime.setBounds(15,420,100,15);
        add(laTaskTime);

        tfTaskTime.setBounds(125,415,120,25);
        tfTaskTime.setFont(new Font("Courier", 0, 12));
        add(tfTaskTime);

        laTaskNumber.setBounds(15,450,100, 15);
        add(laTaskNumber);

        tfTaskNumber.setBounds(125,445,120,25);
        tfTaskNumber.setFont(new Font("Courier", 0, 12));
        add(tfTaskNumber);

        btAdd.setBounds(260,385,95,25);
        add(btAdd);

        btClear.setBounds(260,415,95,25);
        add(btClear);

        btClear.addActionListener(new ActionListener()
        { public void actionPerformed(ActionEvent ae) {
                tfTaskName.setText("");
                tfTaskDelay.setText("");
                tfTaskNumber.setText("");
                tfTaskTime.setText("");
            }
        });

        btStart.addActionListener(new ActionListener()
        { public void actionPerformed(ActionEvent ae) {
                tManager.startTask();
            }
        });

        btAdd.addActionListener(new ActionListener()
        { public void actionPerformed(ActionEvent ae) {
                if (!tfTaskName.getText().isEmpty() && !tfTaskTime.getText().isEmpty() && !tfTaskDelay.getText().isEmpty() && !tfTaskNumber.getText().isEmpty() ) {
                    try {
                        tManager.addTask(tfTaskName.getText(), Integer.parseInt(tfTaskDelay.getText()), Integer.parseInt(tfTaskTime.getText()), Integer.parseInt(tfTaskNumber.getText()));
                    } catch (NumberFormatException e) {
                        logger.error("", e);
                    }
                }
            }
        });

        btStop.addActionListener(new ActionListener()
        { public void actionPerformed(ActionEvent ae) {
                tManager.stopTask();
            }
        });

        btUpdate.addActionListener(new ActionListener()
        { public void actionPerformed(ActionEvent ae) {
                tManager.updateActiveTable();
            }
        });
    }