📄 main.java
字号:
// TODO 将在此处添加您的处理代码:
jTextArea1.setText("");
produceKey();
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
jTextArea1.append(String.valueOf(key[i][j])+" ");
}
jTextArea1.append("\n");
}
}//GEN-LAST:event_showmarix
private void entry(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_entry
// TODO 将在此处添加您的处理代码:
produceKey();
String src=jTextField2.getText();
if(src.length()<=1)
{
jTextField3.setText(src);
return;
}
StringBuffer tem=new StringBuffer(src);
StringBuffer result=new StringBuffer();
char a,b;
int ax=0,ay=0,bx=0,by=0;
while(tem.length()>=1)
{
if(tem.length()==1)
{
a=tem.charAt(0);
tem.deleteCharAt(0);
result.append(a);
jTextField3.setText(result.toString());
return;
}
a=tem.charAt(0);
tem.deleteCharAt(0);
b=tem.charAt(0);
if(a=='q')
a='i';
if(b=='q')
b='i';
if(a==b)
{
if(a=='x')
b='w';
else
b='x';
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
if(a==key[i][j])
{
ax=i;
ay=j;
}
}
}
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
if(b==key[i][j])
{
bx=i;
by=j;
}
}
}
if(ax==bx)//同行
{
ay=(ay+1)%5;
by=(by+1)%5;
a=key[ax][ay];
b=key[bx][by];
result.append(a);
result.append(b);
}
else
{
if(ay==by)//同列
{
ax=(ax+1)%5;
bx=(bx+1)%5;
a=key[ax][ay];
b=key[bx][by];
result.append(a);
result.append(b);
}
else
{
int tax,tay,tbx,tby;
tax=ax;
tay=by;
tbx=bx;
tby=ay;
a=key[tax][tay];
b=key[tbx][tby];
result.append(a);
result.append(b);
}
}
}
else
{
tem.deleteCharAt(0);
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
if(a==key[i][j])
{
ax=i;
ay=j;
}
}
}
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
if(b==key[i][j])
{
bx=i;
by=j;
}
}
}
if(ax==bx)//同行
{
ay=(ay+1)%5;
by=(by+1)%5;
a=key[ax][ay];
b=key[bx][by];
result.append(a);
result.append(b);
}
else
{
if(ay==by)//同列
{
ax=(ax+1)%5;
bx=(bx+1)%5;
a=key[ax][ay];
b=key[bx][by];
result.append(a);
result.append(b);
}
else
{
int tax,tay,tbx,tby;
tax=ax;
tay=by;
tbx=bx;
tby=ay;
a=key[tax][tay];
b=key[tbx][tby];
result.append(a);
result.append(b);
}
}
}
}
jTextField3.setText(result.toString());
}//GEN-LAST:event_entry
/**
* @param args the command line arguments
*/
void produceKey()
{
sb=new StringBuffer("abcdefghijklmnoprstuvwxyz");
keyset.clear();
keysize=0;
String s=jTextField1.getText();
for(int i=0;i<s.length();i++)
{
char c=s.charAt(i);
if(c=='q')
c='i';
String tem=String.valueOf(c);
if(!keyset.contains(tem))
{
keys[keysize]=c;
keysize++;
}
keyset.add(tem);
int index=sb.indexOf(tem);
if(index!=-1)
{
sb.deleteCharAt(index);
}
}
for(int i=keysize,j=0;i<=24;i++,j++)
{
keys[i]=sb.charAt(j);
}
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
key[i][j]=keys[i*5+j];
}
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Main().setVisible(true);
}
});
}
// 变量声明 - 不进行修改//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
// 变量声明结束//GEN-END:variables
StringBuffer sb=new StringBuffer("abcdefghijklmnoprstuvwxyz");
char[][] key=new char[5][5];
char[] keys=new char[25];
HashSet<String> keyset=new HashSet<String>();
int keysize=0;//化简后长度
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -