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

📄 newjframe.java

📁 用java swing可视化图形界面实现的playfair加密解密程序
💻 JAVA
字号:
/*
 * NewJFrame.java
 *
 * Created on 2007年11月28日, 下午12:54
 */

package playfair;
import java.util.*;
/**
 *
 * @author  wangji
 */
public class NewJFrame extends javax.swing.JFrame {
    
    /** Creates new form NewJFrame */
    public NewJFrame() {
        initComponents();
    }
    
    /** 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=" 生成的代码 ">//GEN-BEGIN:initComponents
    private void initComponents() {
        jLabel1 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jLabel1.setText("key");

        jTextArea1.setColumns(20);
        jTextArea1.setRows(5);
        jScrollPane1.setViewportView(jTextArea1);

        jButton1.setText("ENCRYPT");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText("DECRYPT");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 262, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jButton2)
                            .addComponent(jButton1)))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(26, 26, 26)
                        .addComponent(jLabel1)
                        .addGap(38, 38, 38)
                        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 183, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(36, 36, 36)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel1)
                            .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(40, 40, 40)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 159, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(107, 107, 107)
                        .addComponent(jButton1)
                        .addGap(74, 74, 74)
                        .addComponent(jButton2)))
                .addContainerGap(44, Short.MAX_VALUE))
        );
        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
// TODO 将在此处添加您的处理代码:
        miyao();
        jz();
        char c,d;
        int r1=0,r2=0,l1=0,l2=0;
        String q="";
        String w="";
        int i=0;
        String x="";
        x=jTextArea1.getText();
        while(i<x.length()){
        c=x.charAt(i);
        d=x.charAt(i+1);
        i=i+2;
        for(int v=0;v<5;v++){
	for(int u=0;u<5;u++)
          {
                 if(b[v][u]==c){r1=v;l1=u;}
	   else if(b[v][u]==d){r2=v;l2=u;} 
	      }}
        if(r1==r2)              
         {l1=(l1-1+5)%5; l2=(l2-1+5)%5;}
	else if(l1==l2)           
	 {r1=(r1-1+5)%5;r2=(r2-1+5)%5;}
	else 
	{int k=l1; l1=l2;l2=k;} 
     if(b[r2][l2]=='x'){
       q=q+b[r1][l1];
      }
   else   
            q=q+b[r1][l1]+b[r2][l2];
        }
     jTextArea1.setText(""+q);  
    }//GEN-LAST:event_jButton2ActionPerformed

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// TODO 将在此处添加您的处理代码:   
        miyao();
        jz();
        char c,d;
        int r1=0,r2=0,l1=0,l2=0;
        String q="";
        int i=0;
        String x="";
        x=jTextArea1.getText();
        while(i<x.length()){
        c=x.charAt(i);   
        if(i==x.length()-1) d='x';
        else  d=x.charAt(i+1);
        if(c==d) {d='x';i=i+1;}
        else i=i+2;
   
        for(int v=0;v<5;v++){
	for(int u=0;u<5;u++)
          {
                 if(b[v][u]==c){r1=v;l1=u;}
	   else if(b[v][u]==d){r2=v;l2=u;} 
	      }}
        if(r1==r2)              
         {l1=(l1+1)%5; l2=(l2+1)%5;}
	else if(l1==l2)           
	 {r1=(r1+1)%5;r2=(r2+1)%5;}
	else 
	{int k=l1; l1=l2;l2=k;} 
         q=q+b[r1][l1]+b[r2][l2];
       }
        
     jTextArea1.setText(""+q);  
    }//GEN-LAST:event_jButton1ActionPerformed
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }
void miyao(){
      String s="";
        int i=0,j=0,m=0 ; 
        s=jTextField1.getText();
        int z=0;
       while(i<5&&z<s.length()){
        char c=s.charAt(z);
        if((c=='j')||(c=='J'))
	     c='i';
        if(c>='a'&&c<='z')
       { int k=0,l=0;
           while(m>0)
           {
               if((c==b[k][l])||(c==b[k][l]-32))break;
               else l++;
               if(l==5){k++;l=0;}
		 m--;
           }
           if(k>i||(k==i&&l==j))
           {
               b[i][j]=c;
               j++;
               n++;
           }
		 m=n;
     }
	   if(j==5)
	   {
           i++;j=0;
           }
           z++;
}
}
void  jz() 
	{
           char e='a'; 
	   int i=n/5,j=n%5;
	   while(n<25)
	   {
		 int f,g;
	     if(n%5==0) 
		 { f=n/5-1;g=4;}  
	     else
		 { f=n/5;g=n%5-1;}  
	     while(f>=0)
		  {
		    if((e==b[f][g])||(e==b[f][g]-32))  break;  
			if(g==0){f--;g=4;}     
		      else g--;
		  }
	     if(f<0)
		 {  
                     b[i][j]=e;
                     n++;
                     j++;
	        if(j==5)  
	         {i++;j=0;}
		 } 
              e++;
	     if(e=='j')  e++;
	   }	
}
 int n=0;
 char b [][]= new  char [5][5];
    // 变量声明 - 不进行修改//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextField jTextField1;
    // 变量声明结束//GEN-END:variables
    
}

⌨️ 快捷键说明

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