当前位置: 代码迷 >> J2SE >> 本人初学者,请问小疑点
  详细解决方案

本人初学者,请问小疑点

热度:58   发布时间:2016-04-24 01:58:31.0
本人菜鸟,请教小问题
package t3;

  import java.awt.*;
  import java.awt.event.*;
  import javax.swing.*;
  public class KeyEventDemo extends JFrame implements KeyListener{
  static KeyEventDemo frm=new KeyEventDemo(); 
  static JTextField tf=new JTextField(20);
  static JTextArea ta=new JTextArea("",5,20);
  
   
  public static void main(String args[]){
  frm.setSize(200,150);
  frm.setTitle("KeyEvent Demo");
  frm.setLayout(new FlowLayout(FlowLayout.CENTER));
  tf.addKeyListener(frm);  
  ta.setEditable(false);  
  frm.add(tf);  
  frm.add(ta);
  frm.setVisible(true); 
  }
  // 当tf组件触发KeyEvent事件时,根据事件的种类执行下列的程序代码
  public void keyPressed(KeyEvent e){ // 当按键按下时
  ta.setText("");
  ta.append("keyPressed() 被调用\n");
   
  }
  public void keyReleased(KeyEvent e){ // 当按键放开时
  
  ta.append("keyReleased() 被调用\n");
  }  
  public void keyTyped(KeyEvent e){ // 键入内容时
  ta.append("keyTyped() 被调用\n");
  }
  }  

要求如下:
◣ 增加一个JTextArea,区域为10行20列。

  ◣ 如果"a"键按下,则在新增加的JTextArea中显示“恭喜,你按下了a键”。
  ◣ 如果"b"键按下,则在新增加的JTextArea中显示“对不起,你按下了b键”。


------解决方案--------------------
Java code
import java.awt.FlowLayout;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import javax.swing.JFrame;import javax.swing.JTextArea;import javax.swing.JTextField;public class KeyEventDemo extends JFrame implements KeyListener {    /**     *      */    private static final long serialVersionUID = -9124455865998643315L;    private static KeyEventDemo frm;    private static JTextField tf;    private static JTextArea ta;    static {    if (frm == null)        frm = new KeyEventDemo();    if (tf == null)        tf = new JTextField(20);    if (ta == null)        ta = new JTextArea("", 5, 20);    }    public static void main(String args[]) {    frm.setSize(500, 300);    frm.setTitle("KeyEvent Demo");    frm.setLayout(new FlowLayout(FlowLayout.CENTER));    tf.addKeyListener(frm);    ta.setEditable(false);    frm.add(tf);    frm.add(ta);    frm.setVisible(true);    }    // 当tf组件触发KeyEvent事件时,根据事件的种类执行下列的程序代码    public void keyPressed(KeyEvent e) { // 当按键按下时    switch (e.getKeyCode()) {    case KeyEvent.VK_A: {        ta.append("恭喜,你按下了a键\r\n");        break;    }    case KeyEvent.VK_B: {        ta.append("恭喜,你按下了b键\r\n");        break;    }    default: {        return;    }    }    }    public void keyReleased(KeyEvent e) { // 当按键放开时    // ta.append("keyReleased() 被调用\n");    }    public void keyTyped(KeyEvent e) { // 键入内容时    // ta.append("keyTyped() 被调用\n");    }}
------解决方案--------------------
public void keyTyped(KeyEvent e) { // 键入内容时
// ta.append("keyTyped() 被调用\n");
}
}

------解决方案--------------------
JAVA技术总群 161734506 欢迎爱好者加入
  相关解决方案