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是一个值得大家去研究的对象
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是一个值得大家去研究的对象
相关文章推荐
- Java开发工程师是怎样炼成的------边框篇(Borders)
- Java开发工程师是怎样炼成的------按钮篇(Buttons)之二
- Java开发工程师是怎样炼成的------ArrayList(1)
- Java开发工程师是怎样炼成的------按钮篇(Buttons)之一
- 作为一名Java开发工程师需要掌握的专业技能
- Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之35.安装使用MySQL及SQL Manager 推荐
- java软件开发工程师实习求职常见面…
- 3个原因告诉你,JAVA开发工程师薪酬为什么那么高
- java将富文本字符串(HTML)转为文本(Text)
- 在表单中使用editor控件操作大文本字段_java开发平台_web智能表单
- Java中级开发工程师知识点归纳
- Java中级开发工程师知识点归纳
- Android应用开发EditText文本内容变化监听方法
- 混合开发的大趋势之一React Native TextInput (文本输入)
- Java EE WEB工程师培训—JDBC+Servlet+JSP整合开发之32. HTML简介 推荐
- java.lang.IllegalArgumentException: class java.text.DecimalFormat declares multiple JSON fields name
- Java高级开发工程师面试考纲
- 【转】Java中级开发工程师知识点归纳