这是我写好的程序,但是为什么在运行出来的时候我在jt1和jt2里面输入了数字之后为什么在jt3里没有反应啊!没有达到我的预期效果啊!
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import java.util.ArrayList.*;
import java.util.*;public class Xingzuo extends JFrame{
private JLabel jl1 = new JLabel("月");
private JLabel jl2 = new JLabel("日");
private JLabel jl3 = new JLabel("星座");
private JTextField 
     jt1 = new JTextField(15),
     jt2 = new JTextField(15),
     jt3 = new JTextField(15);
  
private JPanel panel = new JPanel();
int[] a = new int[20];
java.util.List<Integer> b = new ArrayList<Integer>(); 
int[] c = new int[30];

public Xingzuo(String title){
super(title);
panel.setLayout(new FlowLayout()) ;
panel.add(jl1);
panel.add(jt1);
panel.add(jl2);
panel.add(jt2);
panel.add(jl3);
panel.add(jt3);

Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
contentPane.add(panel);
jt1.addActionListener(new ActionListener1());
jt2.addActionListener(new ActionListener2());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setSize(800,200);
setVisible(true);
}
class ActionListener1 implements ActionListener{
public void actionPerformed(ActionEvent event){
for(int i=1;i<=12;i++)
a[i-1]=i;
}
}   //我想可能是事件的处理问题吧!

class ActionListener2 implements ActionListener{
public void actionPerformed(ActionEvent e){
Iterator it = b.iterator();
for(int j=1;j<=21;j++){
c[j-1]=j;
b.add(new Integer(c[j-1]));
}

if(jt1.getText().equals(new Integer(a[0]))){
while(it.hasNext()){
if(jt2.getText().equals(it.next())) 
jt3.setText("mijie");
}
jt3.setText("shuiping");
    }
    else
    if(jt1.getText().equals(new Integer(a[1]))){
     while(it.hasNext()){
     if(jt2.getText().equals(it.next()))
     jt3.setText("");
     }
     jt3.setText("");
    }
    else
    if(jt1.getText().equals(new Integer(a[2]))){
     while(it.hasNext()){
     if(jt2.getText().equals(it.next()))
     jt3.setText("");
     }
     jt3.setText("");
    }
    else
    if(jt1.getText().equals(new Integer(a[3]))){
     while(it.hasNext()){
     if(jt2.getText().equals(it.next()))
     jt3.setText("");
     }
     jt3.setText("");
    }
    else
    if(jt1.getText().equals(new Integer(a[4]))){
     while(it.hasNext()){
     if(jt2.getText().equals(it.next()))
     jt3.setText("");
     }
     jt3.setText("");
    }
    else
    if(jt1.getText().equals(new Integer(a[5]))){
     while(it.hasNext()){
     if(jt2.getText().equals(it.next()))
     jt3.setText("");
     }
     jt3.setText("");
    }
    else
    if(jt1.getText().equals(new Integer(a[6]))){
     while(it.hasNext()){
     if(jt2.getText().equals(it.next()))
     jt3.setText("");
     }
     jt3.setText("");
    }
    else
    if(jt1.getText().equals(new Integer(a[7]))){
     while(it.hasNext()){
     if(jt2.getText().equals(it.next()))
     jt3.setText("");
     }
     jt3.setText("");
    }
    else
    if(jt1.getText().equals(new Integer(a[8]))){
     while(it.hasNext()){
     if(jt2.getText().equals(it.next()))
     jt3.setText("");
     }
     jt3.setText("");
    }
    else
    if(jt1.getText().equals(new Integer(a[9]))){
     while(it.hasNext()){
     if(jt2.getText().equals(it.next()))
     jt3.setText("");
     }
     jt3.setText("");
    }
    else
    if(jt1.getText().equals(new Integer(a[10]))){
     while(it.hasNext()){
     if(jt2.getText().equals(it.next()))
     jt3.setText("");
     }
     jt3.setText("");
    }
    else
    {
     while(it.hasNext()){
     if(jt2.getText().equals(it.next()))
     jt3.setText("");
     }
     jt3.setText("");
    }
}
 }
 public static void main(String[] args){
Xingzuo xingzuo = new Xingzuo("hello");
}    
}
谢谢,帮我看看啊!

解决方案 »

  1.   

    帮楼主修改了一下,你要在文本框的文本改变触发事件。你用的不对,你的方法里面有问题,楼主自己改吧。
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.lang.*;
    import java.util.ArrayList.*;
    import java.util.*;
    import javax.swing.event.*;public class Xingzuo extends JFrame{
    private JLabel jl1 = new JLabel("月");
    private JLabel jl2 = new JLabel("日");
    private JLabel jl3 = new JLabel("星座");
    private JTextField 
         jt1 = new JTextField(15),
         jt2 = new JTextField(15),
         jt3 = new JTextField(15);
      
    private JPanel panel = new JPanel();
    int[] a = new int[20];
    java.util.List<Integer> b = new ArrayList<Integer>(); 
    int[] c = new int[30];public Xingzuo(String title){
    super(title);
    panel.setLayout(new FlowLayout()) ;
    panel.add(jl1);
    panel.add(jt1);
    panel.add(jl2);
    panel.add(jt2);
    panel.add(jl3);
    panel.add(jt3);Container contentPane = getContentPane();
    contentPane.setLayout(new FlowLayout());
    contentPane.add(panel);
    //jt1.addActionListener(new ActionListener1());
    //jt2.addActionListener(new ActionListener2());
    DocumentListener listener1 = new ActionListener1();
    DocumentListener listener2 = new ActionListener2();
    jt1.getDocument().addDocumentListener(listener1);
    jt2.getDocument().addDocumentListener(listener2);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    pack();
    setSize(800,200);
    setVisible(true);
    }
    class ActionListener1 implements DocumentListener{
    public void insertUpdate(DocumentEvent e){settext1();}
    public void removeUpdate(DocumentEvent e){settext1();}
    public void changedUpdate(DocumentEvent e){ }}
    public void settext1()
    {
    for(int i=1;i<=12;i++)
             a[i-1]=i;
    }
    public void settext2()
    {
    Iterator it = b.iterator();
    for(int j=1;j<=21;j++){
    c[j-1]=j;
    b.add(new Integer(c[j-1]));
    }if(jt1.getText().equals(new Integer(a[0]))){
    while(it.hasNext()){
    if(jt2.getText().equals(it.next())) 
    jt3.setText("mijie");
    }
    jt3.setText("shuiping");
        }
        else
        if(jt1.getText().equals(new Integer(a[1]))){
        while(it.hasNext()){
        if(jt2.getText().equals(it.next()))
        jt3.setText("");
        }
        jt3.setText("");
        }
        else
        if(jt1.getText().equals(new Integer(a[2]))){
        while(it.hasNext()){
        if(jt2.getText().equals(it.next()))
        jt3.setText("");
        }
        jt3.setText("");
        }
        else
        if(jt1.getText().equals(new Integer(a[3]))){
        while(it.hasNext()){
        if(jt2.getText().equals(it.next()))
        jt3.setText("");
        }
        jt3.setText("");
        }
        else
        if(jt1.getText().equals(new Integer(a[4]))){
        while(it.hasNext()){
        if(jt2.getText().equals(it.next()))
        jt3.setText("");
        }
        jt3.setText("");
        }
        else
        if(jt1.getText().equals(new Integer(a[5]))){
        while(it.hasNext()){
        if(jt2.getText().equals(it.next()))
        jt3.setText("");
        }
        jt3.setText("");
        }
        else
        if(jt1.getText().equals(new Integer(a[6]))){
        while(it.hasNext()){
        if(jt2.getText().equals(it.next()))
        jt3.setText("");
        }
        jt3.setText("");
        }
        else
        if(jt1.getText().equals(new Integer(a[7]))){
        while(it.hasNext()){
        if(jt2.getText().equals(it.next()))
        jt3.setText("");
        }
        jt3.setText("");
        }
        else
        if(jt1.getText().equals(new Integer(a[8]))){
        while(it.hasNext()){
        if(jt2.getText().equals(it.next()))
        jt3.setText("");
        }
        jt3.setText("");
        }
        else
        if(jt1.getText().equals(new Integer(a[9]))){
        while(it.hasNext()){
        if(jt2.getText().equals(it.next()))
        jt3.setText("");
        }
        jt3.setText("");
        }
        else
        if(jt1.getText().equals(new Integer(a[10]))){
        while(it.hasNext()){
        if(jt2.getText().equals(it.next()))
        jt3.setText("");
        }
        jt3.setText("");
        }
        else
        {
        while(it.hasNext()){
        if(jt2.getText().equals(it.next()))
        jt3.setText("");
        }
        jt3.setText("");
        }
    }class ActionListener2 implements DocumentListener{
    public void insertUpdate(DocumentEvent e){settext2();}
    public void removeUpdate(DocumentEvent e){settext2();}
    public void changedUpdate(DocumentEvent e){ }
     }
     public static void main(String[] args){
    Xingzuo xingzuo = new Xingzuo("hello");
    }    
    }
      

  2.   

    代码中实现的事件监听器好像需要按ENTER键才可触发
      

  3.   

    谢谢你们的解答啊!使我明白了很多啊!
    但是我认为对jt3文本框里要显示的内容是不是要放在ActionListener的处理事件里面啊!