public Fom() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 1101, 641);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		panel.setBounds(10, 11, 329, 356);
		contentPane.add(panel);

		panel_1.setBounds(349, 11, 328, 356);
		contentPane.add(panel_1);

		JPanel panel_2 = new JPanel();
		panel_2.setBounds(10, 469, 1077, 120);
		contentPane.add(panel_2);
		panel_2.setLayout(null);

		JButton btnGrayChange = new JButton("Gray Change");
		btnGrayChange.setBounds(12, 75, 145, 33);
		panel_2.add(btnGrayChange);

		JButton btnNewButton = new JButton("Select Image");
		btnNewButton.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				String fileName = "";
				int r = chooserImage.showOpenDialog(new JFrame());
				if (r == JFileChooser.APPROVE_OPTION) {
					fileName = chooserImage.getSelectedFile().getName();
				}
				System.out.print(fileName);
				panel.rePaintLink(fileName);
				panel_1.rePaintLink(fileName);
			}
		});
		btnNewButton.setBounds(12, 12, 145, 33);
		panel_2.add(btnNewButton);

		JButton btnNewButton_1 = new JButton("Convolution");
		btnNewButton_1.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				panel_1.Convolution();
			}
		});
		btnNewButton_1.setBounds(169, 12, 125, 33);
		panel_2.add(btnNewButton_1);

		JButton btnNewButton_2 = new JButton("Increase");
		btnNewButton_2.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				panel_1.IncreaseFinger();
			}
		});
		btnNewButton_2.setBounds(169, 75, 125, 33);
		panel_2.add(btnNewButton_2);

		JButton btnNewButton_3 = new JButton("Gabor Fillter");
		btnNewButton_3.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				panel_1.Gabor();
			}
		});
		btnNewButton_3.setBounds(308, 12, 133, 33);
		panel_2.add(btnNewButton_3);

		JButton btnNewButton_4 = new JButton("Split Threshold");
		btnNewButton_4.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				panel_1.threshold();
			}
		});
		btnNewButton_4.setBounds(306, 75, 135, 33);
		panel_2.add(btnNewButton_4);

		JButton btnThinning = new JButton("Thinning");
		btnThinning.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				try {
					panel_1.thinning();
				} catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
		btnThinning.setBounds(453, 12, 117, 33);
		panel_2.add(btnThinning);

		JButton btnNewButton_5 = new JButton("Extract Featrured");
		btnNewButton_5.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				try {
					panel_1.extractFeatured();
				} catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
		btnNewButton_5.setBounds(451, 75, 119, 33);
		panel_2.add(btnNewButton_5);

		JButton btnNewButton_6 = new JButton("Canny");
		btnNewButton_6.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				panel_1.CannyEdge();
			}
		});
		btnNewButton_6.setBounds(580, 12, 131, 33);
		panel_2.add(btnNewButton_6);

		JButton btnRunData = new JButton("Run Data");
		btnRunData.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				try {
					runData();
				} catch (FileNotFoundException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			}
		});
		btnRunData.setBounds(582, 75, 129, 33);
		panel_2.add(btnRunData);

		JButton btnNewButton_7 = new JButton("Create File");
		btnNewButton_7.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				try {
					exportDataArff();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			}
		});
		btnNewButton_7.setBounds(732, 12, 145, 39);
		panel_2.add(btnNewButton_7);

		JButton btnNewButton_8 = new JButton("Match");
		btnNewButton_8.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				try {
					if ("no".equals(Match())) {
						JOptionPane.showMessageDialog(null, "Khong tim thay doi tuong trong he thong");
					} else {
						JOptionPane.showMessageDialog(null, "Tim thay doi tuong: " + Match());
					}
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
		btnNewButton_8.setBounds(732, 72, 145, 39);
		panel_2.add(btnNewButton_8);

		JButton btnExportTest = new JButton("Export Test");
		btnExportTest.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				try {
					exportDataTest();
					exportDataTrain();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
		btnExportTest.setBounds(898, 12, 145, 33);
		panel_2.add(btnExportTest);

		JButton btnTranningData = new JButton("Tranning Data");
		btnTranningData.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				try {
					TraniningData();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
		btnTranningData.setBounds(899, 69, 144, 39);
		panel_2.add(btnTranningData);
		btnGrayChange.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent evt) {
				grayChangeActionPerformed(evt);
			}
		});
	}