Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Sysepub - FrameSysepub.java

FrameSysepub.java

Caricato da: Teutoburgo
Scarica il programma completo

  1. /*
  2.     Sysepub 0.9.0 - A Symmetric Semi-Public key cipher
  3.     Copyright (C) 2002 Pierre Blanc
  4.     Pierre Blanc: blanc_teutoburgo@yahoo.it
  5.     http://teutoburgo.cjb.net
  6.     http://it.geocities.com/teutoburgo
  7.  
  8.     This program is free software; you can redistribute it and/or modify
  9.     it under the terms of the GNU General Public License as published by
  10.     the Free Software Foundation; either version 2 of the License, or
  11.     (at your option) any later version.
  12.  
  13.     This program is distributed in the hope that it will be useful,
  14.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.     GNU General Public License for more details.
  17.  
  18.     You should have received a copy of the GNU General Public License
  19.     along with this program; if not, write to the Free Software
  20.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  21.     or go to      http://www.gnu.org/copyleft/gpl.html
  22. */
  23. import java.awt.*;
  24. import java.awt.event.*;
  25. import javax.swing.*;
  26. import java.io.*;
  27.  
  28. public class FrameSysepub extends JFrame {
  29.   boolean secretPanelsVisible=false;
  30.   JPanel contentPane;
  31.   BorderLayout borderLayout1 = new BorderLayout();
  32.   Sysepub ssp=null;
  33.   PrintMessages pm = new PrintMessages(true);
  34.   int pubKeySize=0;
  35.   JPanel jPanelCentral = new JPanel();
  36.   JPanel jPanelUp = new JPanel();
  37.   JPanel jPanelDown = new JPanel();
  38.   JPanel jPanelMiddle = new JPanel();
  39.   JScrollPane jScrollPane1 = new JScrollPane();
  40.   JTextArea jTextAreaLog = new JTextArea();
  41.   JPanel jPanelNE = new JPanel();
  42.   JPanel jPanelNW = new JPanel();
  43.   JTextField jTextFieldFile = new JTextField();
  44.   JPanel jPanelCrypt = new JPanel();
  45.   GridLayout gridLayoutCrypt = new GridLayout();
  46.   JButton jButtonCipher = new JButton();
  47.   JButton jButtonDecipher = new JButton();
  48.   BorderLayout borderLayout2 = new BorderLayout();
  49.   GridLayout gridLayout1 = new GridLayout();
  50.   JPanel jPanel1 = new JPanel();
  51.   JPanel jPanel4 = new JPanel();
  52.   JPanel jPanel3 = new JPanel();
  53.   JPanel jPanel2 = new JPanel();
  54.   JLabel jLabelConfig = new JLabel();
  55.   JTextField jTextFieldConfig = new JTextField();
  56.   JButton jButtonConfig = new JButton();
  57.   JPanel jPanelSE = new JPanel();
  58.   JPanel jPanelSW = new JPanel();
  59.   GridLayout gridLayout2 = new GridLayout();
  60.   JPanel jPanel5 = new JPanel();
  61.   JPanel jPanel8 = new JPanel();
  62.   JPanel jPanel7 = new JPanel();
  63.   JPanel jPanel6 = new JPanel();
  64.   JButton jButtonGenerate = new JButton();
  65.   JLabel jLabelKB = new JLabel();
  66.   JTextField jTextFieldKB = new JTextField();
  67.   JCheckBox jCheckBox1 = new JCheckBox();
  68.   GridLayout gridLayout3 = new GridLayout();
  69.   JPanel jPanel9 = new JPanel();
  70.   JPanel jPanel12 = new JPanel();
  71.   JPanel jPanel11 = new JPanel();
  72.   JPanel jPanel10 = new JPanel();
  73.   JLabel jLabelPubKey = new JLabel();
  74.   JLabel jLabelPubKey2 = new JLabel();
  75.   JLabel jLabelSeed = new JLabel();
  76.   JTextField jTextFieldSeed = new JTextField();
  77.   JTextField jTextFieldPattern = new JTextField();
  78.   JLabel jLabelPattern = new JLabel();
  79.   JPanel jPanel13 = new JPanel();
  80.   GridLayout gridLayout4 = new GridLayout();
  81.   JPanel jPanel14 = new JPanel();
  82.   JButton jButtonTry = new JButton();
  83.   JTextField jTextFieldTry = new JTextField();
  84.   JLabel jLabelTry = new JLabel();
  85.   JPanel jPanel15 = new JPanel();
  86.   JLabel jLabelFile = new JLabel();
  87.   JButton jButtonClear = new JButton();
  88.   JMenuBar jMenuBar1 = new JMenuBar();
  89.   JMenu jMenuFile = new JMenu();
  90.   JMenuItem jMenuItemExit = new JMenuItem();
  91.   JMenu jMenuHelp = new JMenu();
  92.   JMenuItem jMenuItemAbout = new JMenuItem();
  93.   JMenuItem jMenuItemWarranty = new JMenuItem();
  94.   JMenuItem jMenuItemBasic = new JMenuItem();
  95.   JMenuItem jMenuItemOpen = new JMenuItem();
  96.   JFileChooser fc = new JFileChooser();
  97.   String seedString="", patternString="";
  98.  
  99.   /**Construct the frame*/
  100.   public FrameSysepub() {
  101.     enableEvents(AWTEvent.WINDOW_EVENT_MASK);
  102.     try {
  103.       jbInit();
  104.     }
  105.         catch (NumberFormatException nfe){
  106.  
  107.         }
  108.     catch(Exception e) {
  109.       e.printStackTrace();
  110.  
  111.     }
  112.   }
  113.   public void sPrintGUI(String message){
  114.         jTextAreaLog.append(message);
  115.     jTextAreaLog.setCaretPosition(jTextAreaLog.getText().length());
  116.   }
  117.   /**Component initialization*/
  118.   private void jbInit() throws Exception  {
  119.     //setIconImage(Toolkit.getDefaultToolkit().createImage(FrameSysepub.class.getResource("[Your Icon]")));
  120.         ssp=new Sysepub(true);
  121.         if(ssp.getSeed()==0) seedString="";
  122.                 else seedString=""+ssp.getSeed();
  123.         fc.setCurrentDirectory(new File("./"));
  124.         contentPane = (JPanel) this.getContentPane();
  125.     contentPane.setLayout(borderLayout1);
  126.     this.setSize(new Dimension(725, 420));
  127.     this.setTitle("Sysepub 0.9");
  128.     jPanelCentral.setLayout(borderLayout2);
  129.         jTextAreaLog.setEditable(false);
  130.         pubKeySize=ssp.getPubKeySize();
  131.         pm.printCopyright();
  132.         pm.printLicenseGUI();
  133.     jTextAreaLog.setBackground(Color.white);
  134.         sPrintGUI("Welcome to Sysepub!\n"+pm.flushLog()+ssp.flushLog()+"\n");
  135.     jScrollPane1.setMaximumSize(new Dimension(600, 400));
  136.     jScrollPane1.setMinimumSize(new Dimension(300, 150));
  137.     jScrollPane1.setPreferredSize(new Dimension(600, 180));
  138.     jTextFieldFile.setBackground(Color.white);
  139.     jTextFieldFile.setText(ssp.getDefaultFile());
  140.     jTextFieldFile.setColumns(20);
  141.     jPanelCrypt.setLayout(gridLayoutCrypt);
  142.     gridLayoutCrypt.setRows(2);
  143.     jButtonCipher.setText("Encipher");
  144.         jButtonCipher.setToolTipText("Enciphers the file specified");
  145.     jButtonCipher.addMouseListener(new java.awt.event.MouseAdapter() {
  146.       public void mousePressed(MouseEvent e) {
  147.         jButtonCipher_mousePressed(e);
  148.       }
  149.     });
  150.     jButtonDecipher.setText("Decipher");
  151.         jButtonDecipher.setToolTipText("Deciphers the file specified");
  152.     jButtonDecipher.addMouseListener(new java.awt.event.MouseAdapter() {
  153.       public void mousePressed(MouseEvent e) {
  154.         jButtonDecipher_mousePressed(e);
  155.       }
  156.     });
  157.     jPanelNE.setLayout(gridLayout1);
  158.     gridLayout1.setRows(2);
  159.     gridLayout1.setColumns(2);
  160.     jLabelConfig.setText("Config file:");
  161.     jButtonConfig.setText("Change");
  162.         jButtonConfig.setToolTipText("You can use multiple configuration files");
  163.     jButtonConfig.addMouseListener(new java.awt.event.MouseAdapter() {
  164.       public void mousePressed(MouseEvent e) {
  165.         jButtonConfig_mousePressed(e);
  166.       }
  167.     });
  168.     jTextFieldConfig.setColumns(10);
  169.         jTextFieldConfig.setBackground(Color.white);
  170.     jTextFieldConfig.setText("ssp.cfg");
  171.     jTextFieldConfig.addKeyListener(new java.awt.event.KeyAdapter() {
  172.       public void keyPressed(KeyEvent e) {
  173.         jTextFieldConfig_keyPressed(e);
  174.       }
  175.     });
  176.     jPanelSW.setLayout(gridLayout2);
  177.     gridLayout2.setRows(2);
  178.     gridLayout2.setColumns(2);
  179.     jButtonGenerate.setText("Generate");
  180.         jButtonGenerate.setToolTipText("Used to generate new random bytes in the public key");
  181.     jButtonGenerate.addMouseListener(new java.awt.event.MouseAdapter() {
  182.       public void mousePressed(MouseEvent e) {
  183.         jButtonGenerate_mousePressed(e);
  184.       }
  185.     });
  186.     jLabelKB.setText("KB");
  187.         jTextFieldKB.setColumns(6);
  188.     jTextFieldKB.addKeyListener(new java.awt.event.KeyAdapter() {
  189.       public void keyPressed(KeyEvent e) {
  190.         jTextFieldKB_keyPressed(e);
  191.       }
  192.     });
  193.     jTextFieldKB.setBackground(Color.white);
  194.     jTextFieldKB.setText(""+(ssp.getDefaultLength()/1024));
  195.     jCheckBox1.setOpaque(false);
  196.     jCheckBox1.setText("View secret key");
  197.     jCheckBox1.setBackground(Color.white);
  198.     jCheckBox1.addMouseListener(new java.awt.event.MouseAdapter() {
  199.       public void mousePressed(MouseEvent e) {
  200.         jCheckBox1_mousePressed(e);
  201.       }
  202.     });
  203.     jPanelSE.setLayout(gridLayout3);
  204.     jLabelPubKey.setText("Public key size:");
  205.     jLabelPubKey2.setText((pubKeySize/1024)+" KB");
  206.     gridLayout3.setRows(2);
  207.     gridLayout3.setColumns(2);
  208.     jLabelSeed.setText("seed");
  209.     jTextFieldSeed.setBackground(Color.white);
  210.     jTextFieldSeed.setForeground(Color.white);
  211.     jTextFieldSeed.setColumns(9);
  212.     jTextFieldSeed.setText(seedString);
  213.     jTextFieldSeed.addMouseListener(new java.awt.event.MouseAdapter() {
  214.       public void mouseExited(MouseEvent e) {
  215.         jTextFieldSeed_mouseExited(e);
  216.       }
  217.     });
  218.     jTextFieldPattern.setColumns(7);
  219.     jTextFieldPattern.setBackground(Color.white);
  220.     jTextFieldPattern.setForeground(Color.white);
  221.         patternString=ssp.getPatternString();
  222.     jTextFieldPattern.setText(patternString);
  223.     jTextFieldPattern.addMouseListener(new java.awt.event.MouseAdapter() {
  224.       public void mouseExited(MouseEvent e) {
  225.         jTextFieldPattern_mouseExited(e);
  226.       }
  227.     });
  228.         jLabelPattern.setText("pattern");
  229.     jPanel13.setLayout(gridLayout4);
  230.     gridLayout4.setRows(2);
  231.     jButtonTry.setToolTipText("Try it if first decryption failed");
  232.     jButtonTry.setActionCommand("jButtonTry");
  233.     jButtonTry.setText("Try again");
  234.     jButtonTry.addMouseListener(new java.awt.event.MouseAdapter() {
  235.       public void mousePressed(MouseEvent e) {
  236.         jButtonTry_mousePressed(e);
  237.       }
  238.     });
  239.     jTextFieldTry.setBackground(Color.white);
  240.         jTextFieldTry.setColumns(3);
  241.     jTextFieldTry.setText("5");
  242.     jLabelTry.setText("times");
  243.     jTextFieldTry.addKeyListener(new java.awt.event.KeyAdapter() {
  244.       public void keyPressed(KeyEvent e) {
  245.         jTextFieldTry_keyPressed(e);
  246.       }
  247.     });
  248.     contentPane.setBackground(Color.white);
  249.     contentPane.setMinimumSize(new Dimension(725, 420));
  250.     contentPane.setPreferredSize(new Dimension(725, 420));
  251.     jPanelCentral.setBackground(Color.white);
  252.     jLabelFile.setText("File:");
  253.     jButtonClear.setToolTipText("Clear log textarea");
  254.     jButtonClear.setText("Clear");
  255.     jButtonClear.addMouseListener(new java.awt.event.MouseAdapter() {
  256.       public void mousePressed(MouseEvent e) {
  257.         jButtonClear_mousePressed(e);
  258.       }
  259.     });
  260.     jMenuItemExit.setText("Exit");
  261.     jMenuItemExit.addActionListener(new java.awt.event.ActionListener() {
  262.       public void actionPerformed(ActionEvent e) {
  263.         jMenuItemExit_actionPerformed(e);
  264.       }
  265.     });
  266.     jMenuItemBasic.setText("Basic Help");
  267.     jMenuItemBasic.addActionListener(new java.awt.event.ActionListener() {
  268.       public void actionPerformed(ActionEvent e) {
  269.         jMenuItemBasic_actionPerformed(e);
  270.       }
  271.     });
  272.         jMenuItemWarranty.setText("Warranty");
  273.     jMenuItemWarranty.addActionListener(new java.awt.event.ActionListener() {
  274.       public void actionPerformed(ActionEvent e) {
  275.         jMenuItemWarranty_actionPerformed(e);
  276.       }
  277.     });
  278.     jMenuHelp.setText("Help");
  279.     jMenuFile.setText("File");
  280.     jMenuItemAbout.setText("About");
  281.     jMenuItemAbout.addActionListener(new java.awt.event.ActionListener() {
  282.       public void actionPerformed(ActionEvent e) {
  283.         jMenuItemAbout_actionPerformed(e);
  284.       }
  285.     });
  286.     jMenuItemOpen.setText("Open");
  287.     jMenuItemOpen.addActionListener(new java.awt.event.ActionListener() {
  288.       public void actionPerformed(ActionEvent e) {
  289.         jMenuItemOpen_actionPerformed(e);
  290.       }
  291.     });
  292.     jPanelSW.setMaximumSize(new Dimension(350, 100));
  293.     jPanelSW.setMinimumSize(new Dimension(130, 94));
  294.     jPanelSW.setPreferredSize(new Dimension(330, 94));
  295.     jPanelSE.setMinimumSize(new Dimension(246, 78));
  296.     jPanelSE.setPreferredSize(new Dimension(346, 78));
  297.     jPanelDown.setPreferredSize(new Dimension(601, 90));
  298.     contentPane.add(jPanelCentral, BorderLayout.CENTER);
  299.     jPanelCentral.add(jPanelUp, BorderLayout.NORTH);
  300.     jPanelUp.add(jPanelNW, null);
  301.     jPanelNW.add(jPanel13, null);
  302.     jPanel13.add(jPanel15, null);
  303.     jPanel15.add(jLabelFile, null);
  304.     jPanel15.add(jTextFieldFile, null);
  305.     jPanel13.add(jPanel14, null);
  306.     jPanel14.add(jButtonTry, null);
  307.     jPanel14.add(jTextFieldTry, null);
  308.     jPanel14.add(jLabelTry, null);
  309.         jPanel14.setVisible(false);
  310.     jPanelNW.add(jPanelCrypt, null);
  311.     jPanelCrypt.add(jButtonCipher, null);
  312.     jPanelCrypt.add(jButtonDecipher, null);
  313.     jPanelUp.add(jPanelNE, null);
  314.     jPanelNE.add(jPanel1, null);
  315.     jPanel1.add(jLabelConfig, null);
  316.     jPanelNE.add(jPanel2, null);
  317.     jPanel2.add(jTextFieldConfig, null);
  318.     jPanelNE.add(jPanel3, null);
  319.     jPanelNE.add(jPanel4, null);
  320.     jPanel4.add(jButtonConfig, null);
  321.     jPanelCentral.add(jPanelMiddle, BorderLayout.CENTER);
  322.     jPanelMiddle.add(jScrollPane1, null);
  323.     jPanelMiddle.add(jButtonClear, null);
  324.     jScrollPane1.getViewport().add(jTextAreaLog, null);
  325.     jPanelCentral.add(jPanelDown, BorderLayout.SOUTH);
  326.     jPanelDown.add(jPanelSW, null);
  327.     jPanelSW.add(jPanel5, null);
  328.     jPanel5.add(jButtonGenerate, null);
  329.     jPanelSW.add(jPanel6, null);
  330.     jPanel6.add(jTextFieldKB, null);
  331.     jPanel6.add(jLabelKB, null);
  332.     jPanelSW.add(jPanel7, null);
  333.     jPanel7.add(jLabelPubKey, null);
  334.     jPanel8.add(jLabelPubKey2, null);
  335.     jPanelSW.add(jPanel8, null);
  336.     jPanelDown.add(jPanelSE, null);
  337.     jPanelSE.add(jPanel9, null);
  338.     jPanel9.add(jCheckBox1, null);
  339.     jPanelSE.add(jPanel10, null);
  340.     jPanelSE.add(jPanel11, null);
  341.     jPanel11.add(jLabelSeed, null);
  342.     jPanel11.add(jTextFieldSeed, null);
  343.     jPanelSE.add(jPanel12, null);
  344.     jPanel12.add(jLabelPattern, null);
  345.     jPanel12.add(jTextFieldPattern, null);
  346.     jMenuBar1.add(jMenuFile);
  347.     jMenuBar1.add(jMenuHelp);
  348.     jMenuFile.add(jMenuItemOpen);
  349.     jMenuFile.add(jMenuItemExit);
  350.     jMenuHelp.add(jMenuItemBasic);
  351.     jMenuHelp.add(jMenuItemWarranty);
  352.     jMenuHelp.add(jMenuItemAbout);
  353.     this.setJMenuBar(jMenuBar1);
  354.         jTextAreaLog.setCaretPosition(jTextAreaLog.getText().length());
  355.         this.setResizable(true);
  356.   }
  357.   /**Overridden so we can exit when window is closed*/
  358.   protected void processWindowEvent(WindowEvent e) {
  359.     super.processWindowEvent(e);
  360.     if (e.getID() == WindowEvent.WINDOW_CLOSING) {
  361.       System.exit(0);
  362.     }
  363.   }
  364.  
  365.   void jButtonCipher_mousePressed(MouseEvent e) {
  366.       String fileName=jTextFieldFile.getText();
  367.       if (fileName.equals("")) sPrintGUI("You must specify a file name!\n");
  368.       else try{
  369.           ssp.setSeed(Long.parseLong(jTextFieldSeed.getText()));
  370.           ssp.setPatternString(jTextFieldPattern.getText());
  371.           ssp.doEncryption(fileName);
  372.       sPrintGUI(ssp.flushLog());
  373.           jTextAreaLog.setCaretPosition(jTextAreaLog.getText().length());
  374.           jTextFieldFile.setText("");
  375.         }catch(NumberFormatException nfe){
  376.               sPrintGUI("Type a long integer number as seed!\n");
  377.         }
  378.   }
  379.   void jButtonDecipher_mousePressed(MouseEvent e) {
  380.       String fileName=jTextFieldFile.getText();
  381.       if (fileName.equals("")) sPrintGUI("You must specify a file name!\n");
  382.         else try{
  383.           ssp.setSeed(Long.parseLong(jTextFieldSeed.getText()));
  384.       ssp.setPatternString(jTextFieldPattern.getText());
  385.       int termination=ssp.doDecryption(fileName,0);
  386.           if (termination==-1) jPanel14.setVisible(true);
  387.           else if (termination==1) {
  388.                   jPanel14.setVisible(false);
  389.                   jTextFieldFile.setText("");
  390.           }
  391.       sPrintGUI(ssp.flushLog());
  392.           jTextAreaLog.setCaretPosition(jTextAreaLog.getText().length());
  393.         }catch(NumberFormatException nfe){
  394.               sPrintGUI("Type a long integer number as seed!\n");
  395.         }
  396.   }
  397.   void jCheckBox1_mousePressed(MouseEvent e) {
  398.         secretPanelsVisible=!secretPanelsVisible;
  399.         if (!secretPanelsVisible)
  400.         {
  401.                 jTextFieldPattern.setForeground(Color.white);
  402.                 jTextFieldSeed.setForeground(Color.white);
  403.         } else {
  404.                 jTextFieldPattern.setForeground(Color.black);
  405.                 jTextFieldSeed.setForeground(Color.black);
  406.         }
  407.   }
  408.   void jButtonGenerate_mousePressed(MouseEvent e) {
  409.         generate();
  410.   }
  411.   void generate(){
  412.           try{
  413.                   int B=Integer.parseInt(jTextFieldKB.getText())*1024;
  414.                   ssp.generateRandomFile(B);
  415.                   pubKeySize+=B;
  416.                   sPrintGUI(ssp.flushLog());
  417.               jLabelPubKey.setText("Public key size:");
  418.                   jLabelPubKey2.setText(pubKeySize/1024+" KB");
  419.                   jPanel14.setVisible(false);
  420.           }catch(NumberFormatException nfe){
  421.               sPrintGUI("Type an integer number for KB!\n");
  422.           }
  423.   }
  424.   void jButtonConfig_mousePressed(MouseEvent e) {
  425.         config();
  426.   }
  427.   void config(){
  428.         String fileName="";
  429.         try{
  430.         fileName=jTextFieldConfig.getText();
  431.         ssp.sspInit(fileName);
  432.         jTextFieldSeed.setText(""+ssp.getSeed());
  433.         jTextFieldPattern.setText(ssp.getPatternString());
  434.         jTextFieldFile.setText(ssp.getDefaultFile());
  435.         sPrintGUI(ssp.flushLog()+"Read configuration from config/"+fileName+"\n");
  436.         jPanel14.setVisible(false);
  437.         } catch (FileNotFoundException fnfe){
  438.                 sPrintGUI("config/"+fileName+" not found\n");
  439.                 fnfe.printStackTrace();
  440.         } catch (IOException ioe) {
  441.             ioe.printStackTrace();
  442.                 sPrintGUI("config/"+fileName+" not found\n");
  443.         } catch (NumberFormatException nfe) {
  444.             nfe.printStackTrace();
  445.                 sPrintGUI("The seed, the period and the randomFileDefaultLength\nmust be long integers!\n");
  446.         } catch (Exception ex){
  447.        sPrintGUI("Initialization failed\n");
  448.         }
  449.   }
  450.   void jTextFieldKB_keyPressed(KeyEvent e) {
  451.     if(e.getKeyCode()==e.VK_ENTER) generate();
  452.   }
  453.   void jTextFieldConfig_keyPressed(KeyEvent e) {
  454.     if(e.getKeyCode()==e.VK_ENTER) config();
  455.   }
  456.   void jTextFieldTry_keyPressed(KeyEvent e) {
  457.     if(e.getKeyCode()==e.VK_ENTER) tryD();
  458.   }
  459.   void jTextFieldSeed_mouseExited(MouseEvent e) {
  460.         if (!seedString.equals(jTextFieldSeed.getText()))
  461.         {
  462.                 seedString=jTextFieldSeed.getText();
  463.                 jPanel14.setVisible(false);
  464.         }
  465.   }
  466.   void jTextFieldPattern_mouseExited(MouseEvent e) {
  467.         if (!patternString.equals(jTextFieldPattern.getText()))
  468.         {
  469.                 patternString=jTextFieldPattern.getText();
  470.                 jPanel14.setVisible(false);
  471.         }
  472.   }
  473.   void jButtonTry_mousePressed(MouseEvent e) {
  474.         tryD();
  475.   }
  476.   void tryD(){
  477.         try{
  478.       int termination=ssp.doDecryption(jTextFieldFile.getText(),
  479.                                                                 Integer.parseInt(jTextFieldTry.getText()));
  480.           if (termination==1) jPanel14.setVisible(false);
  481.       sPrintGUI(ssp.flushLog());
  482.           jTextAreaLog.setCaretPosition(jTextAreaLog.getText().length());
  483.         } catch(NumberFormatException nfe){
  484.                 nfe.printStackTrace();
  485.                 sPrintGUI("Type an integer as number of tries!\n");
  486.         }
  487.   }
  488.  
  489.   void jButtonClear_mousePressed(MouseEvent e) {
  490.     jTextAreaLog.setText("");
  491.   }
  492.  
  493.   void jMenuItemExit_actionPerformed(ActionEvent e) {
  494.         System.exit(0);
  495.   }
  496.   void jMenuItemAbout_actionPerformed(ActionEvent e) {
  497.         pm.printCopyright();
  498.     JOptionPane.showMessageDialog(FrameSysepub.this, pm.flushLog());
  499.  
  500.   }
  501.   void jMenuItemOpen_actionPerformed(ActionEvent e) {
  502.         int returnVal = fc.showOpenDialog(FrameSysepub.this);
  503.         if (returnVal == JFileChooser.APPROVE_OPTION) {
  504.         File file = fc.getSelectedFile();
  505.                 jTextFieldFile.setText(file.getAbsolutePath());
  506.         }
  507.   }
  508.   void jMenuItemWarranty_actionPerformed(ActionEvent e) {
  509.         pm.printNoWarranty();
  510.         sPrintGUI(pm.flushLog());
  511.         jTextAreaLog.setCaretPosition(jTextAreaLog.getText().length());
  512.   }
  513.   void jMenuItemBasic_actionPerformed(ActionEvent e) {
  514.         pm.printHelpGUI();
  515.         sPrintGUI(pm.flushLog());
  516.         jTextAreaLog.setCaretPosition(jTextAreaLog.getText().length());
  517.   }
  518. }