【问题标题】:Convert Java KeyListener implementation to Kotlin将 Java KeyListener 实现转换为 Kotlin
【发布时间】:2020-11-01 22:47:44
【问题描述】:

我用 Java 编写了以下KeyListener

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?

【问题讨论】:

标签: java kotlin keylistener translate keyevent


【解决方案1】:

你可以的

Ctrl + Shift + Alt + K (On Windows)

或者

Command + Option + Shift + K (On Mac)

将您的 Java 代码转换为 Kotlin。

【讨论】:

    【解决方案2】:

    您好,如果您使用的是 IntelliJ:

    您可以将代码插入到 Kotlin 文件中,如果 IntelliJ 没有自动询问您是否应该将其转换为 Kotlin,请选择您的代码并单击“将 Java 文件转换为 Kotlin 文件”在“代码”标签下。

    现在需要很短的时间,您的代码应该已经完全转换为 Kotlin。

    玩得开心,希望能帮到你!

    【讨论】:

      【解决方案3】:

      您可以在 IntelliJ 中使用 Code-> Convert Java File to Kotlin File

      【讨论】:

      • 感谢您的快速回答我认为该功能对我来说经常有用对不起英语不好
      【解决方案4】:

      代码的翻译是(考虑到枚举并不相同,所以我假设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。

      您也可以在 .java 文件中按 Ctrl + Shift + Alt + K 手动将其转换为 Kotlin。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-11-26
        • 1970-01-01
        • 2021-09-04
        • 2021-11-06
        • 1970-01-01
        • 2019-03-03
        • 2021-08-16
        • 2021-02-03
        相关资源
        最近更新 更多