日期:2014-05-20  浏览次数:20760 次

求大神帮忙调试一个密文程序
此程序具体想实现这些功能:在明文框输入明文按回车键以后就可以在密文框显示相应的密文:同样地,在密文框输入收到的密文并回车就可以在明文框显示明文内容,明密文转换规则就是字母之间错开一位,比如说明文的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("解密");
    }
}