Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何运行java小程序的所有方法而不专门调用它们?_Java_Applet_Keyevent - Fatal编程技术网

如何运行java小程序的所有方法而不专门调用它们?

如何运行java小程序的所有方法而不专门调用它们?,java,applet,keyevent,Java,Applet,Keyevent,我刚刚开始通过applet创建一个门户游戏(是的,我知道它完全过时了,我应该使用swing等等),到目前为止,我只遇到一个问题。浏览器/appletviewer仅自动调用paint和init。如果我想调用一个需要keyevent的方法,那是不可能的,因为init不接收任何东西,而paint只接收一个图形。因此,我不能调用thinkerbox方法,这很重要。以下是我迄今为止的代码(分为两类): 第二个: import java.applet.*; import java.awt.*; import

我刚刚开始通过applet创建一个门户游戏(是的,我知道它完全过时了,我应该使用swing等等),到目前为止,我只遇到一个问题。浏览器/appletviewer仅自动调用paint和init。如果我想调用一个需要keyevent的方法,那是不可能的,因为init不接收任何东西,而paint只接收一个图形。因此,我不能调用thinkerbox方法,这很重要。以下是我迄今为止的代码(分为两类):

第二个:

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class keyaction extends KeyAdapter
{

public void useKeys( KeyEvent e, Graphics screen )
{
    int keycode = e.getKeyCode();
    portal p = new portal();

    p.thinkerbox( screen, e );

    if( keycode == KeyEvent.VK_LEFT )
    {
        p.moveLeft( screen );
    }
    else if( keycode == KeyEvent.VK_RIGHT )
    {
        p.moveRight( screen );
    }
    else if( keycode == KeyEvent.VK_UP )
    {
        p.moveUp( screen );
    }
    else if( keycode == KeyEvent.VK_DOWN )
    {
        p.moveDown( screen );
    };
}
}
请帮忙?

建议:

  • 是的,用秋千。你没有理由不
  • 使用键绑定而不是键侦听器
  • 在绑定操作中调用移动方法
  • 让这些方法更改类的状态——更改一个或多个类字段的值
  • 然后调用
    repaint()
  • 让绘图JComponent的
    paintComponent(Graphics g)
    方法使用类字段来决定在何处绘制什么
  • import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
    
    public class keyaction extends KeyAdapter
    {
    
    public void useKeys( KeyEvent e, Graphics screen )
    {
        int keycode = e.getKeyCode();
        portal p = new portal();
    
        p.thinkerbox( screen, e );
    
        if( keycode == KeyEvent.VK_LEFT )
        {
            p.moveLeft( screen );
        }
        else if( keycode == KeyEvent.VK_RIGHT )
        {
            p.moveRight( screen );
        }
        else if( keycode == KeyEvent.VK_UP )
        {
            p.moveUp( screen );
        }
        else if( keycode == KeyEvent.VK_DOWN )
        {
            p.moveDown( screen );
        };
    }
    }