刚接触java,涉及到关于Applet对象的键盘监听和响应程序中有一语句Alpha rotationAlpha=new Alpha(-1,Alpha.INCREASING_ENABLE,0,0,s,0,0,0,0,0);
其中有一变量s,我需要通过键盘按键来改变s值,以控制某些变化。
按VK_UP键使s=s-100
按VK_DOWN键s=s+100我写的程序不起作用,请问应该怎么写?

解决方案 »

  1.   

    下面,你参考一下。import java.awt.Graphics;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;import javax.swing.JApplet;
    import javax.swing.JPanel;public class JAppletTest2 extends JApplet {
      int s;  /**
       * Create the applet
       */
      public JAppletTest2() {
        super();
        final JPanel panel = new JPanel();
        panel.setBounds(0, 0, 220, 120);
        getContentPane().add(panel);    s = 0;
        addKeyListener(new KeyAdapter() {
          public void keyPressed(final KeyEvent e) {
            switch (e.getKeyCode()) {
            case KeyEvent.VK_PAGE_DOWN:
              s += 100;
              repaint();
              break;
            case KeyEvent.VK_PAGE_UP:
              s -= 100;
              repaint();
              break;
            default:
              break;
            }
          }
        });    getContentPane().setLayout(null);    //
      }  public void paint(Graphics g) {
        g.clearRect(g.getClipRect().x, g.getClipRect().y,
        g.getClipRect().width, g.getClipRect().height);
        g.drawString(new Integer(s).toString(), 10, 10);
      }}
      

  2.   

    我像这个代码或许对你很有参考价值吧!
    import java.applet.Applet; 
    import java.awt.Button; 
    import java.awt.Graphics; 
    import java.awt.event.KeyAdapter; 
    import java.awt.event.*; public class Test extends Applet 

    public int s;     public Test() 
        {  
         s=500;
        
            Button b = new Button(); 
            this.add(b); 
            this.setLayout(null); 
            b.setBounds(0, 0, 0, 0); 
            b.requestFocus(); 
            b.addKeyListener(new KeyAdapter() 
            {
             public void keyPressed(KeyEvent e) 
             {
             if (e.getKeyCode() == KeyEvent.VK_UP) 
             {
             s -= 100;
             } 
             else if (e.getKeyCode() == KeyEvent.VK_DOWN) 
             {
             s += 100;
             }
             repaint(); 
             }
            }
            ); 
    }     public void paint(Graphics g) 
        {
            g.drawString("s="+s, 80, 100); 
        } 
    }
      

  3.   

    我像这个代码或许对你很有参考价值吧!
    import java.applet.Applet; 
    import java.awt.Button; 
    import java.awt.Graphics; 
    import java.awt.event.KeyAdapter; 
    import java.awt.event.*; public class Test extends Applet 

    public int s;     public Test() 
        {  
         s=500;
        
            Button b = new Button(); 
            this.add(b); 
            this.setLayout(null); 
            b.setBounds(0, 0, 0, 0); 
            b.requestFocus(); 
            b.addKeyListener(new KeyAdapter() 
            {
             public void keyPressed(KeyEvent e) 
             {
             if (e.getKeyCode() == KeyEvent.VK_UP) 
             {
             s -= 100;
             } 
             else if (e.getKeyCode() == KeyEvent.VK_DOWN) 
             {
             s += 100;
             }
             repaint(); 
             }
            }
            ); 
    }     public void paint(Graphics g) 
        {
            g.drawString("s="+s, 80, 100); 
        } 
    }
      

  4.   

    刚刚写出来的,这个代码更易于理解了,而且代码格式更加的规范,你参考一下吧!
    import java.awt.*;
    import java.applet.Applet;
    import java.awt.Graphics;
    import java.awt.event.*;
    public class Test extends Applet implements KeyListener
    {
    Label lab1;
    int s;

    public void init()
    {
    s=100;

    //下面几个代码很关键
    setLayout(null);//没有这个的话,貌似就会显示一个按钮出来
    Button b=new Button();
    b.setBounds(0, 0, 0, 0);//设置按钮的位置和大小
    add(b);  
    b.addKeyListener(this);//这个贼关键啦!
    b.requestFocus();//前面的b.也可以不要
    }
    public void keyPressed(KeyEvent e)//必须要有这个函数
    {
    //
    if(e.getKeyCode()==(KeyEvent.VK_DOWN))
    {
    s=s-100;
    }
    if(e.getKeyCode()==(KeyEvent.VK_UP))
    {
    s=s+100;
    }
    // repaint();
    }
    public void keyReleased(KeyEvent e)//必须要有这个函数
    {
    //还可以把上面////之间的代码放在这里
    repaint();
    }
    public void keyTyped(KeyEvent e)//必须要有这个函数
    {
    repaint();
    }
    public void paint(Graphics g)
    {
    g.drawString("s="+s, 80, 100);
    }
    }