对于有java基础的同学是很好看懂的,这里不做基础教学,直接代码奉上。
package e_event;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class C1 {
public static void main(String[] args){
WE win=new WE();
win.setBounds(100,100,200,350);
win.setTitle("事件窗口");
jsq1 p=new jsq1(); //创建监视品
win.setdz(p); //调用监视器方法
}
}
class WE extends JFrame{
JTextField t;
JButton b;
JTextArea ta;
jsq0 l;
WE(){
setLayout(new FlowLayout());
t=new JTextField(8);
b=new JButton("确定");
ta=new JTextArea(5,10);
add(t);
add(b);
add(ta);
setVisible(true);
}
void setdz(jsq0 la){ //定义监视器方法
this.l=la;
la.set_t(t);
la.set_ta(ta);
t.addActionListener(la);
b.addActionListener(la);
}
}
interface jsq0 extends ActionListener{
public void set_t(JTextField text); //设置文本框对象
public void set_ta(JTextArea txta); //设置按钮对象
}
class jsq1 implements jsq0{
JTextField t;
JTextArea ta;
public void set_t(JTextField text ){ //重写接口jsq0的set_t方法
t=text;
}
public void set_ta(JTextArea txta ){ //重写接口jsq0的set_ta方法
ta=txta;
}
public void actionPerformed(ActionEvent e){
String str=t.getText();
String str2="";
if(str!=null&&!"".equals(str)) {
for(int i=0;i<str.length();i++){
if(str.charAt(i)>=48&&str.charAt(i)<=57) {
str2+=str.charAt(i);
str2+=",";
}
//一个for循环遍历所有的字符,找出ASCII码中代表0-9的字符,并且用另外一个字符串存储。
}
}
ta.append(str+"字符串中的数字有:"+str2+"\n");
}
}
还有一种方法是正则表达式,这里不作过多说明,有想法的可以一起讨论一下,欢迎各路编程大神!!!