Java开发工程师是怎样炼成的------文本块篇(Text fields)
来源:互联网 发布:php微信分享代码下载 编辑:程序博客网 时间:2024/04/29 23:09
先看看下面的代码:
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 ...{
}
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开发工程师是怎样炼成的------文本块篇(Text fields)
- Java开发工程师是怎样炼成的------按钮篇(Buttons)之一
- Java开发工程师是怎样炼成的------按钮篇(Buttons)之二
- Java开发工程师是怎样炼成的------按钮篇(Buttons)之三
- Java开发工程师是怎样炼成的------边框篇(Borders)
- Java开发工程师是怎样炼成的------ArrayList(1)
- 嵌入式工程师是怎样炼成的
- 嵌入式工程师是怎样炼成的
- 嵌入式工程师是怎样炼成的(一)---- 引言
- 嵌入式工程师是怎样炼成的(一)---- 引言
- 嵌入式工程师是怎样炼成的(二)---- 初来乍到
- 嵌入式工程师是怎样炼成的(三)---- 初涉职场
- 嵌入式工程师是怎样炼成的(四)---- 奋发图强
- 嵌入式工程师是怎样炼成的(一)---- 引言
- 嵌入式工程师是怎样炼成的(二)---- 初来乍到
- 嵌入式工程师是怎样炼成的(三)---- 初涉职场
- 嵌入式工程师是怎样炼成的(四)---- 奋发图强
- 嵌入式工程师是怎样炼成的(一)---- 引言
- Java中常见的异常
- linux基本命令日常操作[1]
- 右下角弹出广告
- 参加微软TechNet解决方案应用论坛
- 几种常用的基本排序算法
- Java开发工程师是怎样炼成的------文本块篇(Text fields)
- 用javascript制作放大镜放大图片
- 请大家多关照!
- 看看google都招些什么样的人
- 关于最近出现的病毒导致桌面无法显示的问题
- 超酷的广告图片切换代码(幻灯片图片切换)
- 求职之路
- INI文件编程,WINAPI函数WritePrivateProfileString,GetPrivateProfileString
- 建设中南财经政法大学的魔兽BN服务器