Bugün java ile yapmış olduğum PDF to Word Converter programının kodlarını ekliyorum. Kodlardan anlıyacağınız gibi jfilechooser ,jmenubar,jmenuitem, jbuton ve click olaylarının felan nasıl kullanıldığını basit bir pencerenin nasıl oluşturulduğunu da görebilirsiniz.
Not: Windows 8 64 Bit, NetBeans IDE 7.4 ile java SDK 1.8 32 bit sürümü ile oluşturulmuştur.
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package array;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.filechooser.FileFilter;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
/**
*
* @author fiyu
*/
public class ocr extends JFrame{
JFrame pencere = new JFrame();
JTextField dosyaYolu = new JTextField(20);
JButton acButon = new JButton("Dosya Seç");
JButton ConvertButon = new JButton("Cevir");
JPanel panel= new JPanel();
JFileChooser chooser = new JFileChooser();
JLabel docLabel = new JLabel();
JLabel pdfLabel = new JLabel();
JLabel okisaret = new JLabel();
JMenuBar menuBar = new JMenuBar();
JMenuItem mnuItem = new JMenuItem("Hakkında");
JMenu menu = new JMenu("Dosya");
public ocr(){
setLayout(new FlowLayout());
pencere.setTitle("PDF to WORD Çevirici");
pencere.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pencere.setSize(450,210);
pencere.setVisible(true);
pencere.setResizable(false);
menuBar.add(menu);
menu.add(mnuItem);
pencere.setJMenuBar(menuBar);
pencere.add(panel);
panel.add(acButon);
panel.add(dosyaYolu);
panel.add(ConvertButon);
panel.add(pdfLabel);
panel.add(okisaret);
panel.add(docLabel);
pdfLabel.setIcon(new ImageIcon("pdf.jpg"));
okisaret.setIcon(new ImageIcon("ok.jpg"));
docLabel.setIcon(new ImageIcon("doc.png"));
mnuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(rootPane, "java-defterim.blogspot.com\n"+"Bu Program Bedavadır");
}
});
ConvertButon.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
File dosya = new File(dosyaYolu.getText());
Tesseract instance = Tesseract.getInstance();
try {
instance.setLanguage("tur");
String sonuc = instance.doOCR(dosya);
FileWriter writer = new FileWriter(dosyaYolu.getText()+"Ceviri.doc");
writer.write(sonuc);
writer.close();
JOptionPane.showMessageDialog(rootPane, "Tamamlandı");
} catch (TesseractException ex) {
Logger.getLogger(ocr.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(ocr.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
acButon.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
chooser.setDialogTitle("PDF Dosyası seciniz...");
chooser.setVisible(true);
chooser.setFileFilter(new FileFilter() {
@Override
public boolean accept(File f) {
if (f.isDirectory())
return true;
String s = f.getName();
int i = s.lastIndexOf('.');
if (i > 0 && i < s.length() - 1)
if (s.substring(i + 1).toLowerCase().equals("pdf"))
return true;
return false;
}
@Override
public String getDescription() {
return "*.PDF";
}
});
int result = chooser.showOpenDialog(panel);
if(result ==chooser.APPROVE_OPTION){
chooser.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dosyaYolu.setText(chooser.getSelectedFile().getAbsolutePath());
}
});
}else if(result==chooser.CANCEL_OPTION){
JOptionPane.showMessageDialog(rootPane, "İptal edildi");
dosyaYolu.setText("");
}
}
});
}
public static void main(String args[]) throws InterruptedException{
try {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new ocr();
}
});
} catch (Exception ex) {
Logger.getLogger(ocr.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Yorumlar
Yorum Gönder