当前位置:  技术问答>NOSQL iis7站长之家

JAVA2中SWING的KeyListener怎么用?

    来源: 互联网  发布时间:2015-01-27

    本文导语:  在JAVA2程序设计中如何使用KeyListener监听接口 | JButton jb = new JButton("sadf"); jb.addKeyListener(new KeyAdapter() {       public void keyPressed(KeyEvent e) {           .......代码........       }   ...

在JAVA2程序设计中如何使用KeyListener监听接口

|
JButton jb = new JButton("sadf");
jb.addKeyListener(new KeyAdapter() {
      public void keyPressed(KeyEvent e) {
          .......代码........
      }
    });

  

|
    jButton1.addKeyListener(new java.awt.event.KeyAdapter() {
      public void keyPressed(KeyEvent e) {
        jButton1_keyPressed(e);
      }
    });

  void jButton1_keyPressed(KeyEvent e) {

  }

|
我抄一个可以运行的程序给你:

/**
 * @version 1.20 25 Jun 1998
 * @author Cay Horstmann
 */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class SketchPanel extends JPanel
   implements KeyListener
{  public SketchPanel()
   {  addKeyListener(this);
   }

   public void keyPressed(KeyEvent evt)
   {  int keyCode = evt.getKeyCode();
      int d;
      if (evt.isShiftDown())
         d = 500; 
      else 
         d = 100;
      if (keyCode == KeyEvent.VK_LEFT) add(-d, 0);
      else if (keyCode == KeyEvent.VK_RIGHT) add(d, 0);
      else if (keyCode == KeyEvent.VK_UP) add(0, -d);
      else if (keyCode == KeyEvent.VK_DOWN) add(0, d);
   }
   
   public void keyReleased(KeyEvent evt)
   {}

   public void keyTyped(KeyEvent evt)
   {  char keyChar = evt.getKeyChar();
      int d;
      if (Character.isUpperCase(keyChar))
      {  d = 5; 
         keyChar = Character.toLowerCase(keyChar);
      }
      else 
         d = 1;
      if (keyChar == 'h') add(-d, 0);
      else if (keyChar == 'l') add(d, 0);
      else if (keyChar == 'k') add(0, -d);
      else if (keyChar == 'j') add(0, d);
   }

   public boolean isFocusTraversable() { return true; }

   public void add(int dx, int dy)
   {  end.x += dx;
      end.y += dy;
      Graphics g = getGraphics();
      g.drawLine(start.x, start.y, end.x, end.y);
      g.dispose();
      start.x = end.x;
      start.y = end.y;
   }  
           
   private Point start = new Point(0, 0);
   private Point end = new Point(0, 0); 
}

class SketchFrame extends JFrame
{  public SketchFrame()
   {  setTitle("Sketch");
      setSize(300, 200);
      addWindowListener(new WindowAdapter()
         {  public void windowClosing(WindowEvent e)
            {  System.exit(0);
            }
         } );

      Container contentPane = getContentPane();
      contentPane.add(new SketchPanel());
   }
}

public class Sketch
{  public static void main(String[] args)
   {  JFrame frame = new SketchFrame();
      frame.show();  
   }
}





    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java2 的技术文档java2 1.3.1_doc哪里有得下载?
  • 哪儿有java2图形设计和java2核心技术卷2的电子书下载,跟贴有分!!
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • Java2JPA
  • Java2Script
  • 看了这个问题不要晕倒, java2 和j2ee有何区别?
  • java2tcl
  • Java源码工具 java2html
  • java 和java2 有什么区别啊
  • Java2D图形包 G
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • 谁有Sun Java2认证考试资料?谢谢
  • 一個關於java2D 的問題
  • 请问哪儿有java2编程详解的电子书下载??本人急需!!跟贴有分!!!
  • 请问java2与java1.1差别大不大
  • 各位大虾,听说有一个java2exe的软件,哪里可以下载呀?
  • 哪里有java2类库的电子书籍(完整的)下载?
  • 初学者问题,java2.0怎么用
  • java2核心技术(2)的代码谁有, 我的光盘掉了.
  • java2D问题???


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3