//************************************************************* // 暗号化と復号化 // 「CipherTest」 // //          作 成 者:ルート高菜    //          作成開始月:2010/2 //          最終更新月:2010/2  [TN127/J117] //************************************************************* import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; public class CipherTest extends JPanel implements ActionListener { //Eclipseの場合、シリアライズ可能クラスでこれがないと警告が出る private static final long serialVersionUID=0; //------------------------------------------------------------------ // JTextField fieldKey=new JTextField(10); JButton buttonKey=new JButton("自動作成"); JComboBox comboKey=new JComboBox(new String[]{"3","4","5","6"}); // JTextField fieldBefore=new JTextField(15); JButton buttonEncrypt=new JButton("上のKeyで暗号化→"); JTextField fieldEncrypted=new JTextField(15); // JTextField fieldAfter=new JTextField(15); JButton buttonDecrypt=new JButton("上のKeyで復号化→"); JTextField fieldDecrypted=new JTextField(15); //------------------------------------------------------------------ // public static void main(String[] args) { JFrame frame=new JFrame(); frame.getContentPane().add(new CipherTest()); frame.setTitle("CipherTest"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //右上×印で終了 frame.setSize(750,200); frame.setVisible(true); frame.setLocationRelativeTo(null); //画面の真ん中に表示 } //------------------------------------------------------------------ // public CipherTest(){ // JPanel keyPanel=new JPanel(); //1 keyPanel.add(new JLabel("Key:")); keyPanel.add(fieldKey); keyPanel.add(comboKey); keyPanel.add(buttonKey); // JPanel encryptPanel=new JPanel(); //2-1 encryptPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),"Encrypt")); //枠線 encryptPanel.add(new JLabel("暗号化前の文字列:")); encryptPanel.add(fieldBefore); encryptPanel.add(buttonEncrypt); encryptPanel.add(new JLabel("暗号化の結果:")); encryptPanel.add(fieldEncrypted); // JPanel decryptPanel=new JPanel(); //2-2 decryptPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),"Decrypt")); //枠線 decryptPanel.add(new JLabel("暗号化後の文字列:")); decryptPanel.add(fieldAfter); decryptPanel.add(buttonDecrypt); decryptPanel.add(new JLabel("復号化の結果:")); decryptPanel.add(fieldDecrypted); // JPanel cryptPanel=new JPanel(); //2 cryptPanel.setLayout(new GridLayout(2,1)); cryptPanel.add(encryptPanel); cryptPanel.add(decryptPanel); // setLayout(new BorderLayout()); add(keyPanel,BorderLayout.NORTH); add(cryptPanel,BorderLayout.CENTER); // buttonKey.addActionListener(this); buttonEncrypt.addActionListener(this); buttonDecrypt.addActionListener(this); } //------------------------------------------------------------------ // public void actionPerformed(ActionEvent e) { Object object=e.getSource(); if(object==buttonKey){ //Keyを自動作成 fieldKey.setText(CipherFinal.makeKeyString( comboKey.getSelectedIndex()+3 )); }else if(object==buttonEncrypt){ //暗号化 try{ String key=fieldKey.getText(); String before=fieldBefore.getText(); if(!key.equals("") && !before.equals("")){ fieldEncrypted.setText(CipherFinal.encrypt(key, before)); } }catch(Exception ex){ JOptionPane.showMessageDialog(this,ex.toString(),"エラー",JOptionPane.ERROR_MESSAGE); fieldEncrypted.setText(""); } }else if(object==buttonDecrypt){ //復号化 try{ String key=fieldKey.getText(); String after=fieldAfter.getText(); if(!key.equals("") && !after.equals("")){ fieldDecrypted.setText(CipherFinal.decrypt(key, after)); } }catch(Exception ex){ JOptionPane.showMessageDialog(this,ex.toString(),"エラー",JOptionPane.ERROR_MESSAGE); fieldDecrypted.setText(""); } } } }