📄 newjframe.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 + -