当前位置:  技术问答>java相关

一个可以接收键盘事件的application修改成applet用IE查看时就无法接收键盘事件,请问应该如何处理?

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

    本文导语:  application版就是中例8.3的手画程序. 用appletviewer Sketch.html查看时很奇怪,会打开2个一样的窗口(还有一个dos窗口),其中一个窗口可以正常接收键盘事件,而另一个不行. 应该如何改动,才能使内嵌在IE中的applet接收到键盘事...

application版就是中例8.3的手画程序.

用appletviewer Sketch.html查看时很奇怪,会打开2个一样的窗口(还有一个dos窗口),其中一个窗口可以正常接收键盘事件,而另一个不行.

应该如何改动,才能使内嵌在IE中的applet接收到键盘事件?

以下是修改后applet版的代码和相应的Sketch.html网页内容.
//Sketch.java
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 = 5; 
      else 
         d = 1;
      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(50, 50);
   private Point end = new Point(50, 50); 
}

public class Sketch extends JApplet
{  public void init()
{
Container contentPane = getContentPane();
       contentPane.add(new SketchPanel());
     }
}

网页Sketch.html中的内容:

Sketch




















|
不好意思,原来的代码在appletviewer下测试的,现在我加了一句,IE中运行好了,你再试试
public class Sketch extends JApplet
{  public void init()
{
Container contentPane = getContentPane();
      contentPane.add(new SketchPanel());
        FocusManager.getCurrentManager().focusNextComponent(contentPane);
    }
}

    
 
 

您可能感兴趣的文章:

  • recv 接收 ,接收空间不够大, 可以通过什么知道?
  • postfix 在内网可以正常接收与发送邮件,但向局外,不能接收与发送
  • sendmail,内部发送接收可以,当用外部的域名,无法发送和接收,如163账号。
  • ===急===哪位大哥有接收实时流音频数据的源代码,或者到哪里可以找到?
  • 在LINUX系统中如果网络设备没有中断的话,可以通过查询接收包吗?谢谢!
  • servlet 中可以实现将指定信息提交到外部的接收页吗?
  • 100分求linux下串口调试工具,要可以发送、接收十六进制
  • 一个多播的问题,是否可以指定特定的数据接收的接口?
  • 终于可以用JAVA支持手机短信发送、接收了,高兴散粉!!!
  • 9.0下,sendmail默认配置,我用outlook可以连接到服务器,可是让接收却不让发送,提示如下
  • iptables 带什么参数可以把eth0上接收到的数据包转发到eth1 ?
  • 有没有哪位提供一下可以接收服务器中文字体的源代码
  • 可以用一个pthread_t变量接收所有子线程返回吗?
  • sos,,一个小程序,,接收数据,,可不知道为什么read就是出错,用recv就可以。
  • 小键盘进 KDE就不能用了,console下可以,怎么办?
  • 如何在UNIX上监测和纪录键盘输入???给1000分或 RMB 都可以!
  • linux启动时就设置进入图形模式(不是加载X-Window),但这个模式下,如果响应鼠标和键盘事件(可以响应所有键值和鼠标按键)!
  • 如何禁用USB鼠标和键盘,但是USB存储设备还可以使用??
  • Java中可以锁住键盘吗??
  • 可以实现对TextField的键盘监听吗?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问在swing中的什么组件上,我可以画矩形和多边形,同时可以响应鼠标事件。
  • 用while循环等待事件发生时是否可以释放系统资源
  • 在javascript中(如onclick事件中)可以插入用JSP编写的验证权限的代码吗?那该怎样插入呢?
  • 点击超级连接可以触发什么事件吗,比如我想得到这个超级连接这段文字的值。大侠请赐教!!!
  • {?}我用下面的方法,给toolbar里面的button加事件,是不是可以呢?
  • jQuery绑定事件不执行但alert后可以正常执行
  • 请教各位网友有什么方法可以根据事件类型的id来获得这个事件类型名?
  • 请教如何通过循环生成控件?如何显示事件触发后生成的控件?可以这样写吗(见内)?谢谢!
  • C++ MultiMaps 成员 max_size():返回可以容纳的最大元素个数
  • 我从网上下载LUNUX然后用盘刻录了可以安装吗?如果可以请告诉我下载地址可以吗?谢谢,我学习用的!谢谢
  • C++ Bitsets 成员 size():返回可以容纳的位的个数
  • tc下可以,gcc下不可以.请告说我,怎样就都可以了
  • C++ Maps 成员 max_size():返回可以容纳的最大元素个数
  • 生产者消费者问题为什么不可以共用一个信号量,如果这个信号量可以设置取值固定为0到N,即当信号量取值为N的时候阻塞进程,是否也可以?
  • 网站英文/中文域名字符集即网站英文/中文域名可以包含哪些字符
  • weblogic可不可以当作jndi服务器使用?如果可以,请问如何管理?
  • 必看!程序员升级之路,看了可以少走很多弯路
  • 请问用ftp可以不可以把整个目录一起上传。
  • linux可不可以和windows共享??可以的话,该怎么做?
  • 怎样写一个shell,可以查看一个文件的内容,并且有翻页的内容,并可以打印的
  • 可以从硬盘上安装redhat吗?linux可以用ghost备份吗?
  • 学习unix,急需教程,请问哪里可以下载,或者谁可以提供这方面的材料!
  • 在线等,为什么我的代码原来可以运行,现在不可以了????TextPad
  • 为什么在网页中有的applet可以显示,有的不可以显示 在线等待!!!!!
  • 有什么可以在2k server下可以用的分区工具?
  • iconv可以用来转换文字编码,有没有可以用来识别编码的?
  • 为什么我在linux7.1中有些命令有时可以用有时不可以用?
  • 怎样让一个.SH文件在任何目录下都可以直接敲入文件名*.SH就可以运行?
  • 我发现在Redhat Linux中有个选项可以连上MSN,不知怎么才可以连上,谢谢


  • 站内导航:


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

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

    浙ICP备11055608号-3