Преобразуйте реализацию Java KeyListener в Kotlin - PullRequest
0 голосов
/ 12 июля 2020

Я написал следующее KeyListener в Java.

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class KeyHandler implements KeyListener{
    @Override
    public void keyTyped(KeyEvent e) {
    }

    @Override
    public void keyPressed(KeyEvent e) {
        
        if(e.getKeyCode()==KeyEvent.VK_W) {
            Global.moveforward=true;
        }
        if(e.getKeyCode()==KeyEvent.VK_S) {
            Global.moveback=true;
        }
        if(e.getKeyCode()==KeyEvent.VK_A) {
            Global.moveleft=true;
        }
        if(e.getKeyCode()==KeyEvent.VK_D) {
            Global.moveright=true;
        }
        if(e.getKeyCode()==KeyEvent.VK_SPACE) {
            Global.jump=true;
        }
        if(e.getKeyCode()==KeyEvent.VK_SHIFT) {
            Global.sneak=true;
        }
        
    }
    
    @Override
    public void keyReleased(KeyEvent e) {
        
        if(e.getKeyCode()==KeyEvent.VK_W) {
            Global.moveforward=false;
        }
        if(e.getKeyCode()==KeyEvent.VK_S) {
            Global.moveback=false;
        }
        if(e.getKeyCode()==KeyEvent.VK_A) {
            Global.moveleft=false;
        }
        if(e.getKeyCode()==KeyEvent.VK_D) {
            Global.moveright=false;
        }
        if(e.getKeyCode()==KeyEvent.VK_SPACE) {
            Global.jump=false;
        }
        if(e.getKeyCode()==KeyEvent.VK_SHIFT) {
            Global.sneak=false;
        }
        
    }
    
}

Как мне лучше всего перевести этот код в Kotlin?

Ответы [ 4 ]

1 голос
/ 12 июля 2020

Привет, , если вы используете IntelliJ:

Вы можете вставить код в файл Kotlin, и если IntelliJ не спросит автоматически, следует ли его преобразовать в Kotlin, выберите свой код и нажмите « Конвертировать Java файл в Kotlin файл » на вкладке « Код ».

Теперь потребуется короткое время, и ваш код должен быть полностью преобразован в Kotlin.

Удачи, я надеюсь, что смогу вам помочь!

1 голос
/ 12 июля 2020

Вы можете сделать

Ctrl + Shift + Alt + K (On Windows)

или

Command + Option + Shift + K (On Mac)

, чтобы преобразовать код Java в Kotlin.

0 голосов
/ 12 июля 2020

Перевод кода (учитывая, что перечисления не идентичны, поэтому я предположил, что условия if разветвлены с else if для очистки):

class KeyHandler : KeyListener {
    override fun keyTyped(e: KeyEvent) {}
    override fun keyPressed(e: KeyEvent) {
        when (e.keyCode) {
            KeyEvent.VK_W -> Global.moveforward = true
            KeyEvent.VK_S -> Global.moveback = true
            KeyEvent.VK_A -> Global.moveleft = true
            KeyEvent.VK_D -> Global.moveright = true
            KeyEvent.VK_SPACE -> Global.jump = true
            KeyEvent.VK_SHIFT -> Global.sneak = true
        }
    }

    override fun keyReleased(e: KeyEvent) {
        when (e.keyCode) {
            KeyEvent.VK_W -> Global.moveforward = false
            KeyEvent.VK_S -> Global.moveback = false
            KeyEvent.VK_A -> Global.moveleft = false
            KeyEvent.VK_D -> Global.moveright = false
            KeyEvent.VK_SPACE -> Global.jump = false
            KeyEvent.VK_SHIFT -> Global.sneak = false
        }
    }
}

И всякий раз, когда вы копируете, вставляйте Java код в файле kotlin (с расширением .kt), Intellij предложит вам автоматически преобразовать его в Kotlin.

В качестве альтернативы вы можете нажать Ctrl + Shift + Alt + K в файле .java, чтобы вручную преобразовать его в Kotlin.

0 голосов
/ 12 июля 2020

Вы можете использовать Code-> Convert Java File to Kotlin File в IntelliJ.

...