我做了一个java程序,作为普通程序是可以的,但是作为applet没有办法接收键盘输入,为什么?怎样做?
多谢。

解决方案 »

  1.   

    作为网页上的applet没有办法接收键盘输入
      

  2.   

    因为安全原因,Applet砂盒中运行的。要想让applet跨过砂盒访问本地资源(就像LZ要求的接收键盘输入),就必须使用数字签名技术。讲得到的证书和applet一起打包。具体的做法LZ可以去google下。另外JB中有生成证书的程序。
      

  3.   

    在jcomponent 上画图,然后处理键盘事件。 不能获得键盘事件么?
      

  4.   

    加载一个JPanel到Applet中,用JPanel接受键盘录入就可以!
      

  5.   

    我是用japplet,在contentPane 里放了Jcomponent组件,然后就在上面接受操作和绘图,鼠标可以用,键盘没反应。这样子怎样解决?
           contentPane = getContentPane ( );      contentPane.add ( animatedComponent, BorderLayout.CENTER );
      
    animatedComponent就是我主要操作的Jcomponent组件。
      

  6.   

    组件要获得焦点才能接受键盘事件,调用这个方法,然后在这个组件上面单击一下,让它获得焦点, 就可以接收鼠标事件了。
    animatedComponent.setFocusable(true);
    //例子
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;import javax.swing.JApplet;
    import javax.swing.JComponent;public class TestApplet extends JApplet {
    public void init() {
    JComponent c = new JComponent() {
    protected void paintComponent(Graphics g) {
    super.paintComponent(g);

    g.setColor(Color.BLACK);
    g.drawLine(0, 0, 100, 100);
    }
    };

    c.addKeyListener(new KeyAdapter() {
    public void keyPressed(KeyEvent e) {
    System.out.println(e.getKeyChar() + " pressed.");
    }
    });
    c.setFocusable(true);

    getContentPane().add(c, BorderLayout.CENTER);
    }
    }