您的位置:首页 > 编程语言 > Java开发

Java开发工程师是怎样炼成的------文本块篇(Text fields)

2007-04-06 15:55 609 查看
先看看下面的代码:

 


import javax.swing.JApplet;


import javax.swing.JButton;


import javax.swing.JFrame;


import javax.swing.JTextField;


import javax.swing.event.DocumentEvent;


import javax.swing.event.DocumentListener;


import javax.swing.text.PlainDocument;






public class TextFields extends JApplet ...{


    JButton b1 = new JButton("Get Text"), b2 = new JButton("Set Text");


    JTextField t1 = new JTextField(30), t2 = new JTextField(30),t3 = new JTextField(30);


    String s = new String();


    UpperCaseDocument ucd = new UpperCaseDocument();


    




    public void init() ...{


        //下面的两行:当t1的内容改变,将激活T1函数的操作


        t1.setDocument(ucd);//将编辑器与一个文本文档关联


        ucd.addDocumentListener(new T1());//添加负责通知任何更改的文档侦听器


        b1.addActionListener(new B1());


        b2.addActionListener(new B2());


        t1.addActionListener(new T1A());//感觉似乎没有什么大用处


        Container cp = get
4000
ContentPane();


        cp.setLayout(new FlowLayout());


        cp.add(b1);


        cp.add(b2);


        cp.add(t1);


        cp.add(t2);


        cp.add(t3);


    }






    class T1 implements DocumentListener ...{




        public void changedUpdate(DocumentEvent e) ...{


        }




        public void insertUpdate(DocumentEvent e) ...{


            t2.setText(t1.getText());


            t3.setText("Text: " + t1.getText());


        }




        public void removeUpdate(DocumentEvent e) ...{


            t2.setText(t1.getText());


        }


    }






    class T1A implements ActionListener ...{


        private int count = 0;




        public void actionPerformed(ActionEvent e) ...{


            t3.setText("t1 Action Event " + count++);


        }


    }






    class B1 implements ActionListener ...{




        public void actionPerformed(ActionEvent e) ...{


            if (t1.getSelectedText() == null)//获取选择的文本


                s = t1.getText();//获取全部的文本


            else


                s = t1.getSelectedText();


            t1.setEditable(true);


        }


    }






    class B2 implements ActionListener ...{




        public void actionPerformed(ActionEvent e) ...{


            t1.setText("Inserted by Button 2: " + s);


            t1.setEditable(false);


        }


    }






    public static void main(String[] args) ...{


        TextFields applet = new TextFields();


        JFrame frame = new JFrame(applet.getClass().toString().substring(6));//建立一个名字为Buttons的frame


        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//frame关闭方法


        frame.getContentPane().add(applet);


        applet.init();


        applet.start();


        frame.setSize(300, 300);


        frame.setVisible(true);


    }


}






class UpperCaseDocument extends PlainDocument ...{


}

需要学习的几个地方:

1、getText();//获取全部的文本;getSelectedText()//获取选择的文本

2、t1.setDocument(ucd);//将编辑器与一个文本文档关联
  ucd.addDocumentListener(new T1());//添加负责通知任何更改的文档侦听器 

  这样,当一个JTextField文本的内容改变时,就可以触发某些事情 DocumentListener接口有三个方法需要实现

 PlainDocument是一个值得大家去研究的对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息