下面代码可编译运行,为什么总是不管我输入的对不对,总是提示验证失败的,大家帮忙看一下,谢谢
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class xulie extends JFrame implements ActionListener,FocusListener
{
JButton jbn,jbn2;
JTextField jfd1;
JTextField jfd2,jfd3,jfd4,jfd5,jfd6,jfd7,jfd8,jfd9;
Panel pne1,pne2,pne3;

xulie()
{
super("序列号生成器");
setSize(460,150);
setLocationRelativeTo(null);
Container con=getContentPane();
pne1=new Panel();
pne1.setLayout(new FlowLayout());
pne2=new Panel();
pne3=new Panel();
pne3.setLayout(new FlowLayout());


con.setLayout(new GridLayout(3,1));
jbn=new JButton("Creat");
jbn2=new JButton("Check");
jfd1=new JTextField(15);
    pne1.add(jfd1);
    pne1.add(jbn);
    
jfd2=new JTextField(5);
jfd3=new JTextField(5);
jfd4=new JTextField(5);
jfd5=new JTextField(5);
jfd6=new JTextField(5);
jfd7=new JTextField(5);
jfd8=new JTextField(5);
jfd9=new JTextField(5);
pne2.add(jfd2);
pne2.add(jfd3);
pne2.add(jfd4);
pne2.add(jfd5);
pne3.add(jfd6);
pne3.add(jfd7);
pne3.add(jfd8);
pne3.add(jfd9);
pne3.add(jbn2);
//jfd2.setVisible(false);
//jfd3.setVisible(false);
// jfd4.setVisible(false);
//jfd5.setVisible(false);
con.add(pne1);
con.add(pne2);
con.add(pne3);
setVisible(true);
jbn.addActionListener(this);
jbn2.addActionListener(this);
jfd1.addFocusListener(this);
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{System.exit(0);}});
}

public void actionPerformed(ActionEvent e) 
{
if(e.getSource()==jbn)
{String sb1="";
String str=jfd1.getText();
StringBuilder sb=new StringBuilder();
checklength cla=new checklength();//实例化对象
if(cla.checklength(str)){

byte[] bt=null;
try{

bt=str.getBytes("ISO8859_1");
}
 catch 
(java.io.UnsupportedEncodingException ie) 
        { 
            ie.printStackTrace(); 
        }  for(byte i=0;i<bt.length;i++)//依次取得字符串里的ascll值
{
  int k=bt[i]*199;//把取得的ascll乘以199
  sb.append(k);}//连接相乘过后的字符
int b=sb.length();//连接相乘字符过后的长度
  if(sb.length()<20)
  {for(int j=0;j<20-b;j++)//小于20位则不足的位数后面加0
   
    {sb.append(0);}
    sb1=sb.toString();
   jfd2.setText(sb1.substring(0,5));
   jfd3.setText(sb1.substring(5,10));
   jfd4.setText(sb1.substring(10,15));
   jfd5.setText(sb1.substring(15,20));
  
   }
   else
   {sb1=sb.toString();
   sb1=sb1.substring(0,20);//大于20位则截取前20位
   jfd2.setText(sb1.substring(0,5));
   jfd3.setText(sb1.substring(5,10));
   jfd4.setText(sb1.substring(10,15));
   jfd5.setText(sb1.substring(15,20));}}
   else
  {JOptionPane.showMessageDialog(null,"请输入5位字符!");
jfd1.setText("");
jfd2.setText("");
jfd3.setText("");
jfd4.setText("");
jfd5.setText("");
jfd1.requestFocus();}}
else if(e.getSource()==jbn2)
{
if(jfd2.getText().trim()!=jfd6.getText().trim()||jfd3.getText().trim()!=jfd7.getText().trim()||jfd4.getText().trim()!=jfd8.getText().trim()||jfd5.getText().trim()!=jfd9.getText().trim())
JOptionPane.showMessageDialog(null,"验证失败!");
else
JOptionPane.showMessageDialog(null,"成功!");
}

  
}

public void focusGained(FocusEvent e)
{
  
jfd1.setText("");

}

public static void main(String[] args)
{
new xulie();
}
public void focusLost(FocusEvent e){}
}

class checklength{

public  boolean checklength(String string)//检查是不是输入5位字符
{ if(string.length()==5)
{return true;}
else 
return false;
}
}