当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 请教各位如何实现在xp的操作系统上装win98se操作系统谢谢 ......
    摘要: 我在aspx中加入了可以浏览cad图纸的avviewx.dll类 <object id="aa" style="z-index: 104; left: 64px; width: 320px; position: absolute; top: 192px; height: 168px" classid="clsid:8718c658-8......


关于键盘事件焦点问题

http://expert.csdn.net/Expert/topic/2079/2079512.xml?temp=.3699304  
   
  mvc框架  
  应该还是焦点没有获取!  
  在Frame中!  
  //getContentPane().add(toolBar,   BorderLayout.NORTH);  
  还有加入视图的语句!  
  如果去掉toolBar,只加视图就运行正常,但是两个都加!则不能运行键盘事件!  
  简单说就是!  
  就是在一个Frame中加入了JComponent(内有键盘事件),和3个JToolBar  
  如果不加JToolBar则程序正常!  
  否则键盘事件不执行,但同时鼠标事件一直运行正常!

NO.1   作者: hewei999

楼主你是在向我们求助,还是在自言自语啊???

NO.2   作者: nomenn

up  
 

NO.3   作者: cooled

试试用myJComponent.setFocusable(true);

NO.4   作者: cooled

Jcomponent没有setFoucusable()这个方法  
  但java.awt.Component有,  
  而Jcomponent是java.awt.Component的子类,可以在Jcomponent中用.  
  你加上试试先,不行再把其他的乱七八糟的都去掉再试.

NO.5   作者: cooled

试了一下,没响应键盘事件是因为焦点首先停在Jcomponent前面的组建上.按Tab键切换到Jcomponent组件上就可以响应了.  
  下面是代码.按2次Tab键后即可打印出键盘事件.  
   
  import   java.awt.*;  
  import   java.awt.geom.*;  
  import   java.util.*;  
  import   java.awt.event.*;  
  import   javax.swing.*;  
  import   javax.swing.event.*;  
   
  public   class   Sketch   {  
      public   static   void   main(String[]   args)   {  
          SketchFrame   frame   =   new   SketchFrame();  
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
          frame.show();  
      }  
  }  
   
  /**  
        A   frame   with   a   panel   for   sketching   a   figure  
    */  
  class   SketchFrame  
          extends   JFrame   {  
      SketchPanel   panel   =   new   SketchPanel();  
      JPanel   jToolPane   =   new   JPanel();  
      JToolBar   tb1   =   new   JToolBar();  
      JToolBar   tb2   =   new   JToolBar();  
   
      public   SketchFrame()   {  
          setTitle("Sketch");  
          setSize(WIDTH,   HEIGHT);  
   
          //   add   panel   to   frame  
   
          Container   contentPane   =   getContentPane();  
   
          tb1.add(new   JButton("toolBar1"));  
          tb2.add(new   JButton("toolBar2"));  
          jToolPane.add(tb1);  
          jToolPane.add(tb2);  
          contentPane.add(jToolPane,   BorderLayout.NORTH);  
          contentPane.add(panel,   BorderLayout.CENTER);  
          panel.setFocusable(true);  
   
      }  
   
      public   static   final   int   WIDTH   =   300;  
      public   static   final   int   HEIGHT   =   200;  
  }  
   
  /**  
        A   panel   for   sketching   with   the   keyboard.  
    */  
  class   SketchPanel  
          extends   JComponent   {  
      private   JTextArea   ta   =   new   JTextArea();  
      public   SketchPanel()   {  
          this.setLayout(new   BorderLayout());  
          this.add(new   JScrollPane(ta));  
          ta.setEditable(false);  
          KeyHandler   listener   =   new   KeyHandler();  
          addKeyListener(listener);  
      }  
   
      public   void   addText(String   text)   {  
          ta.append(text);  
      }  
   
  //       public   boolean   isFocusTraversable()  
  //       {  
  //             return   true;   //   allow   panel   to   get   input   focus  
  //       }  
   
      private   class   KeyHandler  
              implements   KeyListener   {  
          public   void   keyPressed(KeyEvent   event)   {  
              int   keyCode   =   event.getKeyCode();  
              char   c   =   (char)   keyCode;  
              addText("----   keyPressed:   "   +   c   +   "\tkeyCode:   "   +   keyCode   +   "\n");  
              System.out.println(keyCode);  
              //   set   distance  
          }  
   
          public   void   keyReleased(KeyEvent   event)   {}  
   
          public   void   keyTyped(KeyEvent   event)   {  
              char   keyChar   =   event.getKeyChar();  
   
          }  
      }  
  }

NO.6   作者: kinglomei

楼主有魅力,有没有男朋友?

NO.7   作者: cooled

如果不想按tab键,设计上就存在问题.  
  Jcomponent上的键盘事件,当然只能在Jcomponent有焦点的时候才响应!  
   
  例如:Jcomponent是一个画板,已经选定了画板中的一条直线并复制到了剪贴板中.Jcomponent中有键盘事件"Ctrl+V"粘贴操作,这时候你在Jcomponent上的另一个对话框中进行操作(即Jcomponent失去焦点),你想用Ctrl+C和Ctrl+v在对话框中的几个JTextField中进行操作,会有什么后果?  
   
 


    摘要: 我有两张表。 表a 表b 表字段名 aa bb cc dd ee ff 表数据 1 2 3 1 4 5 2 9 9 1 4 7 2 4 4 aa 与 dd关联 我想显示如下: 1 2 3 4 5 1 2 3 4 7 2 9 9 4 4 怎样实现呢,急! ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE