先看看下面的代码:
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 = getContentPane();
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是一个值得大家去研究的对象
本文介绍了一个使用Java Swing创建的简易应用,该应用通过监听JTextField文本字段的变化来更新其他文本字段。主要实现了文本获取、设置及转换为大写的功能,并通过按钮触发不同的操作。
&spm=1001.2101.3001.5002&articleId=1554602&d=1&t=3&u=aff253aa37a540669c312dfc63d247da)
1427

被折叠的 条评论
为什么被折叠?



