以下代码是实现 当按回车就弹出一个对话框,显示刚才按回车前键盘所输入的字符。
但是明明加了“窗口事件的侦听器接口”(红色部分),还是是关闭不了对话框。
不知道是为什么?
请高手指点下。
import java.awt.*;
import java.awt.event.*;
import java.lang.StringBuffer;
public class AdapterDemo extends Frame{
    private Dialog dialog;
    private Label label;
    private StringBuffer sb;    public AdapterDemo(String title){
        super(title);        dialog=new Dialog(this,"Note",true);
        label=new Label();
        dialog.add(label);
        dialog.setSize(200,150);        requestFocus();
        sb=new StringBuffer();
        addKeyListener(new KeyAdapter(){
            public void keyTyped(KeyEvent e){
                char key=e.getKeyChar();
                sb.append(e.getKeyChar());
                while(e.getKeyChar()=='\n'){
                    label.setText("the user enter the :"+sb);
                    dialog.setVisible(true);
                }
            }
        });
        
        dialog.addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e){
                dialog.dispose();
            }
        });
        
        addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e){
                System.exit(0);
            }
        });        setSize(300,300);
        setVisible(true);
    }
    public static void main(String args[]){
        new AdapterDemo("hi");
    }
}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【Jo_Cai】截止到2008-06-28 14:19:44的历史汇总数据(不包括此帖):
    发帖数:6                  发帖分:120                
    结贴数:5                  结贴分:100                
    未结数:1                  未结分:20                 
    结贴率:83.33 %            结分率:83.33 %            
    楼主加油
      

  2.   


    但是这几句代码不是实现了关闭对话框的功能吗?
    public void windowClosing(WindowEvent e){ 
                    dialog.dispose(); 
                } 
      

  3.   

    看你的这段代码:    while(e.getKeyChar()=='\n'){
                        label.setText("the user enter the :"+sb);
                        dialog.setVisible(true);
       }
    //这段代码一直在把dialog设置为可见的.....
    //把while改成if就行了
      

  4.   

    太感谢你了~~~~~~~~~原来我思考的地方错了
    CSDN这论坛太好了~!
    ^_^
      

  5.   

    我公司的电脑没有JAVA,刚下载安了一个,你里面有一段是死循环啊。
     while(e.getKeyChar()=='\n'){ 
                        label.setText("the user enter the :"+sb); 
                        dialog.setVisible(true);
    你按了回车之后那个值就停在那里了。你可以改成其它的,如IF……