⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 .#merg26219cvs

📁 一个文献检索程序
💻 #MERG26219CVS
字号:
/*
 * MainGUI.java
 *
 * Created on 2006年10月30日, 下午1:21
 */

package TestIndexing;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JOptionPane;

/**
 *
 * @author  Alpha
 */
public class MainGUI extends javax.swing.JFrame {
    
    /** Creates new form MainGUI */
    public MainGUI() {
        initComponents();
        this.termAnaly = new TermAnalysis();
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
    private void initComponents() {
        jFileChooser1 = new javax.swing.JFileChooser();
        jScrollPane1 = new javax.swing.JScrollPane();
        ReportTextArea = new javax.swing.JTextArea();
        menuBar = new javax.swing.JMenuBar();
        fileMenu = new javax.swing.JMenu();
        openMenuItem = new javax.swing.JMenuItem();
        saveMenuItem = new javax.swing.JMenuItem();
        saveAsMenuItem = new javax.swing.JMenuItem();
        exitMenuItem = new javax.swing.JMenuItem();
        editMenu = new javax.swing.JMenu();
        processMenuItem = new javax.swing.JMenuItem();
        processQueryMenuItem = new javax.swing.JMenuItem();
        helpMenu = new javax.swing.JMenu();
        contentsMenuItem = new javax.swing.JMenuItem();
        aboutMenuItem = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Zipf's Law");
        setResizable(false);
        jScrollPane1.setPreferredSize(new java.awt.Dimension(400, 300));
        ReportTextArea.setColumns(20);
        ReportTextArea.setEditable(false);
        ReportTextArea.setRows(5);
        ReportTextArea.setMargin(new java.awt.Insets(5, 5, 5, 5));
        jScrollPane1.setViewportView(ReportTextArea);

        getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);

        fileMenu.setText("File");
        openMenuItem.setText("Open");
        openMenuItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                openMenuItemActionPerformed(evt);
            }
        });

        fileMenu.add(openMenuItem);

        saveMenuItem.setText("Save");
        saveMenuItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                saveMenuItemActionPerformed(evt);
            }
        });

        fileMenu.add(saveMenuItem);

        saveAsMenuItem.setText("Save As ...");
        saveAsMenuItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                saveAsMenuItemActionPerformed(evt);
            }
        });

        fileMenu.add(saveAsMenuItem);

        exitMenuItem.setText("Exit");
        exitMenuItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                exitMenuItemActionPerformed(evt);
            }
        });

        fileMenu.add(exitMenuItem);

        menuBar.add(fileMenu);

        editMenu.setText("Edit");
        processMenuItem.setText("Process");
        processMenuItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                processMenuItemActionPerformed(evt);
            }
        });

        editMenu.add(processMenuItem);

        processQueryMenuItem.setText("ProcessQuery");
        processQueryMenuItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                processQueryMenuItemActionPerformed(evt);
            }
        });

        editMenu.add(processQueryMenuItem);

        menuBar.add(editMenu);

        helpMenu.setText("Help");
        contentsMenuItem.setText("Contents");
        contentsMenuItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                contentsMenuItemActionPerformed(evt);
            }
        });

        helpMenu.add(contentsMenuItem);

        aboutMenuItem.setText("About");
        aboutMenuItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                aboutMenuItemActionPerformed(evt);
            }
        });

        helpMenu.add(aboutMenuItem);

        menuBar.add(helpMenu);

        setJMenuBar(menuBar);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void processQueryMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_processQueryMenuItemActionPerformed
        ReportTextArea.setText(termAnaly.startQuery().printRank());
    }//GEN-LAST:event_processQueryMenuItemActionPerformed

    private void contentsMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_contentsMenuItemActionPerformed
        String HelpContent = "File->Open: Open a file to analyze\n" +
                "File->Save: Save result to current location with name \"result\"\n" +
                "File->Save As: Save result to other locations\n" +
                "File->Exit: Exit to system\n" +
                "Edit->Process: Analyze the file and print its result\n" +
                "Help->Content: Provide help for using this program\n" +
                "Help->About: Show name, version, author info\n";
        JOptionPane.showMessageDialog(null, HelpContent, "Content",
                                      JOptionPane.QUESTION_MESSAGE);
    }//GEN-LAST:event_contentsMenuItemActionPerformed

    private void saveAsMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveAsMenuItemActionPerformed
        this.jFileChooser1.showSaveDialog(null);
        jFileChooser1.setSelectedFile(new File("Result.txt"));
        if(jFileChooser1.getSelectedFile() !=null) {
            try {
                FileWriter fw = new FileWriter(jFileChooser1.getSelectedFile(), false);
                BufferedWriter bw = new BufferedWriter(fw);
                bw.write(this.ReportTextArea.getText());
                bw.close();
                fw.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }//GEN-LAST:event_saveAsMenuItemActionPerformed

    private void saveMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveMenuItemActionPerformed
        try {
            //Write Result.txt
            File result = new File("Result.txt");
            FileWriter fw = new FileWriter(result, false);
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write(this.ReportTextArea.getText());
            bw.close();
            fw.close();
            //Write Dict.txt
            String dict = termAnaly.writeDict("Dict.txt");
            //Write InvDoc.txt
            String invDoc = termAnaly.writeInvDoc("InvDoc.txt");
            JOptionPane.showMessageDialog(null, "Result.txt has been saved to " + result.getAbsolutePath() + "\n"
                                                    +" Dict.txt has been saved to " + dict + "\n"
                                                    +" InvDoc.txt has been saved to " + invDoc, "Save",
                                      JOptionPane.INFORMATION_MESSAGE);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }//GEN-LAST:event_saveMenuItemActionPerformed

    private void processMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_processMenuItemActionPerformed
        if( termAnaly.getStoppedWord() == null ){
            ReportTextArea.append("Cannot find \"English_stopword.txt\" file!\n");
            return;
        }
        try {
            termAnaly.processStoppedWordFile();
            termAnaly.process();
            ReportTextArea.setText("");
            ReportTextArea.append(termAnaly.getNumDoc() + " docs processed.\n");
            ReportTextArea.append(termAnaly.getNumUniqueTerm() + " unique terms observed.\n");
            ReportTextArea.append(termAnaly.getNumTerm() + " total terms encountered.\n");
            ReportTextArea.append(termAnaly.getFinalResult());
            ReportTextArea.append(termAnaly.getInverseTermTable().toString());
        } catch (Exception ex) {
            ex.printStackTrace();
            ReportTextArea.append("Cannot find input file!\n");
        }
    }//GEN-LAST:event_processMenuItemActionPerformed

    private void aboutMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_aboutMenuItemActionPerformed
        String AboutContent = "Zipf's Law v1.0\n" + "By Alpha\n";
        JOptionPane.showMessageDialog(null, AboutContent, "About",
                                      JOptionPane.INFORMATION_MESSAGE);
    }//GEN-LAST:event_aboutMenuItemActionPerformed

    private void openMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_openMenuItemActionPerformed
        jFileChooser1.showOpenDialog(null);
        jFileChooser1.setFileSelectionMode(jFileChooser1.DIRECTORIES_ONLY);
        if(jFileChooser1.getSelectedFile().isDirectory()) {
            File f = jFileChooser1.getSelectedFile();
            try {
//                if (f.isDirectory()) {
                    System.out.println(f.getPath());
                    File all = new File(f.getPath()+"\\cacm.all");
                    File stop = new File(f.getPath()+"\\English_stopword.txt");
                    File query = new File(f.getPath()+"\\queries.txt");
                    termAnaly.setSource(all);
                    termAnaly.setStoppedWord(stop);
                    termAnaly.processStoppedWordFile();
                    termAnaly.setQueries(query);
                    ReportTextArea.setText("the file of stopped word \"" + stop.getName() + "\" has been loaded.\n");
                    ReportTextArea.append("\"" + all.getName() + "\" has been loaded.\n");
                    ReportTextArea.append("\"" + query.getName() + "\" has been loaded.\n");
//                }
            } catch (FileNotFoundException ex) {
                ex.printStackTrace();
            }
        }
    }//GEN-LAST:event_openMenuItemActionPerformed
    
    private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitMenuItemActionPerformed
        System.exit(0);
    }//GEN-LAST:event_exitMenuItemActionPerformed
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MainGUI().setVisible(true);
            }
        });
    }
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JTextArea ReportTextArea;
    private javax.swing.JMenuItem aboutMenuItem;
    private javax.swing.JMenuItem contentsMenuItem;
    private javax.swing.JMenu editMenu;
    private javax.swing.JMenuItem exitMenuItem;
    private javax.swing.JMenu fileMenu;
    private javax.swing.JMenu helpMenu;
    private javax.swing.JFileChooser jFileChooser1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JMenuBar menuBar;
    private javax.swing.JMenuItem openMenuItem;
    private javax.swing.JMenuItem processMenuItem;
    private javax.swing.JMenuItem processQueryMenuItem;
    private javax.swing.JMenuItem saveAsMenuItem;
    private javax.swing.JMenuItem saveMenuItem;
    // End of variables declaration//GEN-END:variables
    private TermAnalysis termAnaly;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -