当前位置: 代码迷 >> J2SE >> 求大神帮忙调试一个密文程序解决方法
  详细解决方案

求大神帮忙调试一个密文程序解决方法

热度:44   发布时间:2016-04-24 02:12:00.0
求大神帮忙调试一个密文程序
此程序具体想实现这些功能:在明文框输入明文按回车键以后就可以在密文框显示相应的密文:同样地,在密文框输入收到的密文并回车就可以在明文框显示明文内容,明密文转换规则就是字母之间错开一位,比如说明文的A对应密文的B。但是写出来以后报错了,报错信息:“需要为 class、interface 或 enum”。小弟刚学java实在菜鸟弄不懂,谢谢各位了。

import java.awt.*;
import java.awt.event.*;
class YourWindow extends Frame implements ActionListener
{
TextField text1,text2,text3,text4;
Button b1;
YourWindow(String s)
{
super(s);
setLayout(new FlowLayout());
text1=new TextField(20);
text2=new TextField(20);
text3=new TextField("输入明文",20);
text4=new TextField("输入密文",20);
text3.setEditable(false);
text4.setEditable(false);
b1=new Button("退出");
add(text1);add(text2);add(text3);add(text4);
add(b1);
b1.addActionListener(this);
text1.addActionListener(this);
text2.addActionListener(this);
setBounds(200,200,550,350);
setVisible(true);
validate();
}
}
public void actionPerformed(ActionEvent e) 
{
if(e.getSource()==b1)
{
System.exit(0);
}
else if(e.getSource()==text1)
{
String s=text1.getText();
convertString(s);
char n[]=s.toCharArray();
int i;
int m=0;
char k[];
for(i=0;i<n.lenght;i++)
{
m = (int) n[i];
if((m+1)<=90&&(m+1)>=65)
{
k[i] = (char)(m+1)
}
else if((m+1)>90)
{
k[i] = (char)(m+1-26)
}
}
return String.valueOf(k);
text2.setText(String.valueOf(k));
}
else if(e.getSource()==text2)
{
String ss=text2.getText();
convertString(ss);
char nn[]=ss.toCharArray();
int ii;
int mm=0;
char kk[];
for(ii=0;ii<nn.lenght;ii++)
{
mm = (int) nn[i];
if((mm-1)>0)
{
kk[ii] = (char)(mm-1)
}
else if((mm-1)<=0)
{
kk[ii] = (char)(mm-1+26)
}
return String.valueOf(kk);
text1.setText(String.valueOf(kk));
}
}
}
public static String convertString(String src)
  {
  char[] array = src.toCharArray();
  int temp = 0;
  for (int i = 0; i < array.length; i++)
  {
  temp = (int) array[i];
  if (temp <= 90 && temp >= 65)
  { // array[i]为大写字母
  array[i] = (char) (temp + 32);
  } 
  else if{}
  }
  return String.valueOf(array);
  }
public class Acc
{
  public static void main(String args[])
  {
  YourWindow a=new YourWindow("解密");
  }
}


------解决方案--------------------
我给你代码改了一下
Java code
import java.awt.*;import java.awt.event.*;class YourWindow extends Frame implements ActionListener {    TextField text1, text2, text3, text4;    Button b1;    YourWindow(String s) {        super(s);        setLayout(new FlowLayout());        text1 = new TextField(20);        text2 = new TextField(20);        text3 = new TextField("输入明文", 20);        text4 = new TextField("输入密文", 20);        text3.setEditable(false);        text4.setEditable(false);        b1 = new Button("退出");        add(text1);        add(text2);        add(text3);        add(text4);        add(b1);        b1.addActionListener(this);        text1.addActionListener(this);        text2.addActionListener(this);        setBounds(200, 200, 550, 350);        setVisible(true);        validate();    }    public void actionPerformed(ActionEvent e) {        if (e.getSource() == b1) {            System.exit(0);        } else if (e.getSource() == text1) {            String s = text1.getText();            convertString(s);            char n[] = s.toCharArray();            int i;            int m = 0;            char k[] = new char[n.length];            for (i = 0; i < n.length; i++) {                m = (int) n[i];                if ((m + 1) <= 90 && (m + 1) >= 65) {                    k[i] = (char) (m + 1);                } else if ((m + 1) > 90) {                    k[i] = (char) (m + 1 - 26);                }            }            text2.setText(String.valueOf(k));        } else if (e.getSource() == text2) {            String ss = text2.getText();            convertString(ss);            char nn[] = ss.toCharArray();            int ii;            int mm = 0;            char kk[] = new char[nn.length];            for (ii = 0; ii < nn.length; ii++) {                mm = (int) nn[ii];                if ((mm - 1) > 0) {                    kk[ii] = (char) (mm - 1);                } else if ((mm - 1) <= 0) {                    kk[ii] = (char) (mm - 1 + 26);                }                text1.setText(String.valueOf(kk));            }        }    }    public static String convertString(String src) {        char[] array = src.toCharArray();        int temp = 0;        for (int i = 0; i < array.length; i++) {            temp = (int) array[i];            if (temp <= 90 && temp >= 65) { // array[i]为大写字母                array[i] = (char) (temp + 32);            }            // else if{}        }        return String.valueOf(array);    }}public class Acc {    public static void main(String args[]) {        YourWindow a = new YourWindow("解密");    }}
  相关解决方案