先感谢大家的帮助啊
但是我按下了键盘却没有反应,请问怎么解决?谢谢啦啊
这个是MyTestField类,继承了MyTextField类package test;
import java.awt.*;
import java.beans.*;
import java.awt.event.*;
import java.util.*;
public class MyTextField extends TextField{private String showText;
private transient Vector keyListeners;
public MyTextField(MainFrame frame){
this.addKeyListener(frame);
}
public String getShowText() {
return showText;
}
public void setShowText(String newShowText) {
this.showText = newShowText;
this.setText(this.showText);
}public synchronized void removeKeyListener(KeyListener l){
super.removeKeyListener(l);
if(keyListeners!=null&&keyListeners.contains(l)){
Vector v = (Vector)keyListeners.clone();
v.removeElement(l);
keyListeners = v;
}
}public synchronized void addKeyListener(KeyListener l){
super.removeKeyListener(l);
Vector v =(keyListeners==null ? new Vector(2) : (Vector)keyListeners.clone());
if(!v.contains(l)){
v.addElement(l);
keyListeners = v;
}
}protected void fireKeyTyped(KeyEvent e){
if(keyListeners!=null){
Vector l = keyListeners;
int count = l.size();
for(int i=0;i<count;i++){
((KeyListener)l.elementAt(i)).keyTyped(e);
}
}
}protected void fireKeyPressed(KeyEvent e){
if(keyListeners!=null){
Vector l = keyListeners;
int count = l.size();
for(int i=0;i<count;i++){
((KeyListener)l.elementAt(i)).keyPressed(e);
}
}
}protected void fireKeyReleased(KeyEvent e){
if(keyListeners!=null){
Vector l = keyListeners;
int count = l.size();
for(int i=0;i<count;i++){
((KeyListener)l.elementAt(i)).keyReleased(e);
}
}
}
}这个是MainFrame类,实现了MyTextField类package test;import java.awt.*;
import java.awt.event.*;
import java.beans.*;
import java.util.*;public class MainFrame extends Frame implements KeyListener{MyTextField textBean = new MyTextField(this);
Label label = new Label("OK");public MainFrame(){
init();
}private void init(){
this.setTitle("JavaBean实例");
this.setSize(267,129);
this.setLayout(new GridLayout(2,1));
textBean.addKeyListener(this);
this.add(textBean);
this.add(label);
}@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println("keyPressed");
char c = e.getKeyChar();
label.setText("您的按键弹出来了!");
}@Override
public void keyReleased(KeyEvent e) {
System.out.println("keyRelease");
// TODO Auto-generated method stub
char c = e.getKeyChar();
label.setText("您敲入的字母:"+c);
}@Override
public void keyTyped(KeyEvent e) {
System.out.println("keyTyped!");
// TODO Auto-generated method stub
char c = e.getKeyChar();
label.setText("您按键了!");
}public static void main(String[] args){
MainFrame frame = new MainFrame();
frame.setLocation(250,130);
frame.setSize(250,130);
frame.setVisible(true);
}}
但是我按下了键盘却没有反应,请问怎么解决?谢谢啦啊
这个是MyTestField类,继承了MyTextField类package test;
import java.awt.*;
import java.beans.*;
import java.awt.event.*;
import java.util.*;
public class MyTextField extends TextField{private String showText;
private transient Vector keyListeners;
public MyTextField(MainFrame frame){
this.addKeyListener(frame);
}
public String getShowText() {
return showText;
}
public void setShowText(String newShowText) {
this.showText = newShowText;
this.setText(this.showText);
}public synchronized void removeKeyListener(KeyListener l){
super.removeKeyListener(l);
if(keyListeners!=null&&keyListeners.contains(l)){
Vector v = (Vector)keyListeners.clone();
v.removeElement(l);
keyListeners = v;
}
}public synchronized void addKeyListener(KeyListener l){
super.removeKeyListener(l);
Vector v =(keyListeners==null ? new Vector(2) : (Vector)keyListeners.clone());
if(!v.contains(l)){
v.addElement(l);
keyListeners = v;
}
}protected void fireKeyTyped(KeyEvent e){
if(keyListeners!=null){
Vector l = keyListeners;
int count = l.size();
for(int i=0;i<count;i++){
((KeyListener)l.elementAt(i)).keyTyped(e);
}
}
}protected void fireKeyPressed(KeyEvent e){
if(keyListeners!=null){
Vector l = keyListeners;
int count = l.size();
for(int i=0;i<count;i++){
((KeyListener)l.elementAt(i)).keyPressed(e);
}
}
}protected void fireKeyReleased(KeyEvent e){
if(keyListeners!=null){
Vector l = keyListeners;
int count = l.size();
for(int i=0;i<count;i++){
((KeyListener)l.elementAt(i)).keyReleased(e);
}
}
}
}这个是MainFrame类,实现了MyTextField类package test;import java.awt.*;
import java.awt.event.*;
import java.beans.*;
import java.util.*;public class MainFrame extends Frame implements KeyListener{MyTextField textBean = new MyTextField(this);
Label label = new Label("OK");public MainFrame(){
init();
}private void init(){
this.setTitle("JavaBean实例");
this.setSize(267,129);
this.setLayout(new GridLayout(2,1));
textBean.addKeyListener(this);
this.add(textBean);
this.add(label);
}@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println("keyPressed");
char c = e.getKeyChar();
label.setText("您的按键弹出来了!");
}@Override
public void keyReleased(KeyEvent e) {
System.out.println("keyRelease");
// TODO Auto-generated method stub
char c = e.getKeyChar();
label.setText("您敲入的字母:"+c);
}@Override
public void keyTyped(KeyEvent e) {
System.out.println("keyTyped!");
// TODO Auto-generated method stub
char c = e.getKeyChar();
label.setText("您按键了!");
}public static void main(String[] args){
MainFrame frame = new MainFrame();
frame.setLocation(250,130);
frame.setSize(250,130);
frame.setVisible(true);
}}
this.addKeyListener(new KeyAdapter() { @Override
public void keyReleased(KeyEvent e) {
char ch = e.getKeyChar();
try {
System.out.println(“结果");
} catch (IOException e1) {
JOptionPane.showMessageDialog(null, "出错了");
}
}
});
javax.swing.event
接口 DocumentListener
的方法即可
给TextFiled添加个KeyListener
我自己实现的MYTextField和MyMainFrame
在MyMainFrame里添加了MyTextField,Label,TextArea