public Subtitles() 
	{

		// SETS EMPTY BORDER
		this.setBorder(javax.swing.BorderFactory.createEmptyBorder());
		text.setBorder(javax.swing.BorderFactory.createEmptyBorder());

		// MENU
		menu = new JMenu("Help");
		menubar = new JMenuBar();
		menu.setMnemonic(KeyEvent.VK_H);
		menu.getAccessibleContext().setAccessibleDescription("Halp");
		menuItem = new JMenuItem("How to use application", KeyEvent.VK_U);
		menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1,
				ActionEvent.ALT_MASK));
		menuItem.getAccessibleContext().setAccessibleDescription(
				"This doesn't really do anything");
		menuItem.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent event) {
				JOptionPane
						.showMessageDialog(
								menuItem,
								"1) Click \"Open a file\" and load your subtitles\n"
										+ "2) Click \"Start\" and the play button your movie\n "
										+ "3) Click \"Pause\" to pause the subtitles\n"
										+ "4) Use the slider to move the current time of the subtitles\n "
										+ "5) Use the color picker to change the text color\n"
										+ "6) Press Alt+F and Alt+E to exit\n"
										+ "7) Press Win+H to show/hide the buttons while the movie is playing");
			}
		});

		menu.add(menuItem);

		this.setBackground(new Color(0, 0, 0, 0));
		text.setForeground(Color.blue);
		text.copy();
		text.selectAll();
		text.requestFocusInWindow();
		text.setBackground(new Color(0, 0, 0, 0));
		JMenu file = new JMenu("File");
		file.setMnemonic(KeyEvent.VK_F);
		JMenuItem eMenuItem = new JMenuItem("Exit");
		eMenuItem.setMnemonic(KeyEvent.VK_E);
		eMenuItem.setToolTipText("Exit application");
		eMenuItem.addActionListener(new ActionListener() 
		{
			@Override
			public void actionPerformed(ActionEvent event) 
			{
				System.exit(0);
			}
		});

		final JColorChooser tcc = new JColorChooser(text.getForeground());
		tcc.getSelectionModel().addChangeListener(new ChangeListener() 
		{
			@Override
			public void stateChanged(ChangeEvent arg0) 
			{
				text.setForeground(tcc.getColor());
			}

		});

		menuItem2 = new JMenuItem("Select a text color");
		menuItem2.setToolTipText("Select a text color");
		menuItem2.addActionListener(new ActionListener() 
		{
			@Override
			public void actionPerformed(ActionEvent arg0) {

				JOptionPane.showMessageDialog(menuItem2, tcc);

			}

		});
		
		menuItem3 = new JMenuItem("Load state from file");
		menuItem3.setToolTipText("Select");
		menuItem3.addActionListener(new ActionListener() 
		{

			@Override
			public void actionPerformed(ActionEvent e) 
			{
				// TODO Auto-generated method stub
				JFileChooser fileChooser = new JFileChooser();
				if (fileChooser.showOpenDialog(menuItem3) == JFileChooser.APPROVE_OPTION) 
				{
				  File file = fileChooser.getSelectedFile();
				  Scanner inFile = null;
				  try 
				  {
					inFile = new Scanner(file);
					int curr = inFile.nextInt();
					counter = curr;
					slide.setValue(counter);
					System.out.println("COUNT FROM FILE: " + curr);
				  } 
				  catch (FileNotFoundException e1) 
				  {
					e1.printStackTrace();
				}
				  inFile.close();
				  // load from file
				}
			}
			
		});
		
		menuItem4 = new JMenuItem("Save current state");
		menuItem4.setToolTipText("Save");
		menuItem4.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) 
			{
				// TODO Auto-generated method stub
				JFileChooser fileChooser = new JFileChooser();
				if (fileChooser.showSaveDialog(menuItem4) == JFileChooser.APPROVE_OPTION) 
				{
				  File file = fileChooser.getSelectedFile();
				  PrintWriter printer = null;
				  try 
				  {
					printer = new PrintWriter(file);
					printer.write(new Integer(counter).toString());
					System.out.println("WROTE SUCCESFULLY: " + counter);
				} 
				  catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} 
				  catch (IOException e) 
				  {
					// TODO Auto-generated catch block
					e.printStackTrace();
				  }
				 printer.close();
				}
			}
		}
		);
		
		file.add(menuItem4);
		file.add(menuItem3);
		file.add(menuItem2);
		file.add(eMenuItem);

		menubar.add(file);
		menubar.add(menu);

		this.add(menubar, BorderLayout.NORTH);
		counter = 0;
		slide = new JSlider(SwingConstants.HORIZONTAL, 0,
				Graphix.subtitles.size(), 0);
		text.setFont(f);
		openFile = new JButton("Open a file...");
		openFile.addActionListener(new ActionListener2());
		fc = new JFileChooser();
		text.setHorizontalAlignment(SwingConstants.CENTER); // CENTERS TEXT!
		this.setLayout(new BorderLayout());
		this.setPreferredSize(new Dimension((int) java.awt.Toolkit
				.getDefaultToolkit().getScreenSize().getWidth(), 110));
		start.addActionListener(new ActionListener2());
		pause.addActionListener(new ActionListener2());
		slide.setBackground(new Color(0,0,0,0));
		
		this.add(text, BorderLayout.PAGE_END);
		this.add(start, BorderLayout.CENTER);
		this.add(pause, BorderLayout.LINE_END);
		this.add(fc, BorderLayout.LINE_START);
		this.add(openFile, BorderLayout.LINE_START);

		this.add(menubar, BorderLayout.PAGE_START);
		this.requestFocus();

		JIntellitype.getInstance();
		if (JIntellitype.checkInstanceAlreadyRunning("MyApp")) 
			{
			   System.out.println("An instance of this application is already running");
			   System.exit(1);
			}
		
		JIntellitype.getInstance().registerHotKey(1, JIntellitype.MOD_WIN, (int)'H');
		JIntellitype.getInstance().registerHotKey(2, JIntellitype.MOD_WIN, (int)'Q');
		JIntellitype.getInstance().addHotKeyListener(new HotkeyListener() {

			@Override
			public void onHotKey(int arg0) 
			{
				// TODO Auto-generated method stub
				if (arg0 == 1){
					System.out.println("H HAS BEEN PRESSED");
					System.out.println("HIDDEN");
					if (isHidden) {
						slide.setVisible(true);
						pause.setVisible(true);
						openFile.setVisible(true);
						fc.setVisible(true);
						menubar.setVisible(true);
						//listPane.setVisible(true);
						isHidden = false;
					} else {
						menubar.setVisible(false);
						//listPane.setVisible(false);
						slide.setVisible(false);
						pause.setVisible(false);
						openFile.setVisible(false);
						fc.setVisible(false);
						isHidden = true;
					}
				}
				else if (arg0 == 2)
				{
					System.out.println("CLOSING");
					System.exit(0);
				}
			}	
		}
		);
	}