有谁知道为什么我在一个Frame里面加一个TextField能正常显示,也能正常编辑, 但在一个Window里加一个TextField能正常显示却不能编辑呢?
有知道的吗?指点一下,感谢!!!

解决方案 »

  1.   

    调用方法 setEditable(true)试试
      

  2.   

    import java.awt.Window;
    import java.awt.Button;
    import java.awt.TextField;
    import java.awt.event.*;
    import java.awt.FlowLayout;
    import java.awt.Color;
    import java.awt.Frame;public class MyWindow extends Window
    {
        public MyWindow()
        {
            super(null);
            setSize(500,350);
            setVisible(true);
            exitButton=new Button("Exit");
            tf=new TextField("Hello,World!",20);
            tf.setEditable(true);
            setBackground(Color.red);
            setLayout(new FlowLayout());
            add(tf);
            add(exitButton);
            exitButton.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                     System.exit(0);
                }
            });
            setLocation(100,100);
            pack();
        }
        public static void main(String[]args)
        {
            new MyWindow();
        }
        private Button exitButton;
        private TextField tf;
    }代码是这样的,
    如果把extends Window 改成 extends Frame,然后把super(null)注释掉的话,文本框就可以编辑了
    想问一下为什么extends Window文本框就不能编辑呢?
      

  3.   

      因为window是Frame类的父类,而windod类又继承自Container类.窗口类产生一个顶级窗口(window).而顶级窗口不包含在任何别的对象中,它是直接出现在桌面上的,通常不 会直接产生一个window对象.而是使用window类的子类.
      Frame类做为window类的子类封装了窗口通常所需要的一切组件,并且拥有标题栏,菜单栏以及可以调整大小的角,Frame类可以用来在小应用程序中创建子窗口,也可以在应用程序中创建顶级或子窗口.框架是独立与Applet和浏览器的一个窗口.它可以用做容器和组件.所以window是不包含任何组件的,只能通过Frame等
      

  4.   

    请问为什么Window可以add(Button)正常使用,而add(TextField)却不能编辑呢