好吧,所以我陷入了这个困境...

我正在尝试实现的是生成0-9之间的一系列数字。在生成数字之后,我希望将它们键入屏幕上的文本字段中。除了将随机数更改为键码之外,我已经掌握了所有基本功能。目前,当我将其转换为键码时,它变为0。

这是我的代码:

public void random() {
    int rand = new Random().nextInt(10);
            System.out.println(""+rand);
    convert();
}

public void convert() {
    switch (rand) {
    case 0:
        rand = KeyEvent.VK_0;
                    System.out.println(""+0);
        break;
    case 1:
        rand = KeyEvent.VK_1;
                    System.out.println(""+1);
        break;
    case 2:
        rand = KeyEvent.VK_2;
                    System.out.println(""+2);
        break;
    case 3:
        rand = KeyEvent.VK_3;
                    System.out.println(""+3);
        break;
    case 4:
        rand = KeyEvent.VK_4;
                    System.out.println(""+4);
        break;
    case 5:
        rand = KeyEvent.VK_5;
                    System.out.println(""+5);
        break;
    case 6:
        rand = KeyEvent.VK_6;
                    System.out.println(""+6);
        break;
    case 7:
        rand = KeyEvent.VK_7;
                    System.out.println(""+7);
        break;
    case 8:
        rand = KeyEvent.VK_8;
                    System.out.println(""+8);
        break;
    case 9:
        rand = KeyEvent.VK_9;
                    System.out.println(""+9);
        break;
    }
}


输出是这样的:

5
0


应该是什么:

5
53


有什么建议/解决方案吗?

谢谢!!

最佳答案

Luiggi是对的。该代码无法编译。

无论如何,如果我在哪里猜测,此代码可能对您有用:

public void random() {
    int rand = new java.util.Random().nextInt(10);
    convert(rand);
}

public void convert(int rand) {
    int vk = 0;
    switch (rand) {
    case 0:
        vk = java.awt.event.KeyEvent.VK_0;
        break;
    case 1:
        vk = java.awt.event.KeyEvent.VK_1;
        break;
    case 2:
        vk = java.awt.event.KeyEvent.VK_2;
        break;
    case 3:
        vk = java.awt.event.KeyEvent.VK_3;
        break;
    case 4:
        vk = java.awt.event.KeyEvent.VK_4;
        break;
    case 5:
        vk = java.awt.event.KeyEvent.VK_5;
        break;
    case 6:
        vk = java.awt.event.KeyEvent.VK_6;
        break;
    case 7:
        vk = java.awt.event.KeyEvent.VK_7;
        break;
    case 8:
        vk = java.awt.event.KeyEvent.VK_8;
        break;
    case 9:
        vk = java.awt.event.KeyEvent.VK_9;
        break;
    }
    System.out.println(rand+"->"+vk);
}


请注意,由于VK_0VK_9的值介于48至57之间,因此您也可以这样做:

public void randomAndConvert() {
    int rand = new java.util.Random().nextInt(10);
    int vk = rand+48;
    System.out.println(rand+"->"+vk);
}


最后,关于原始代码的几件事:


printLn应该是println
兰特从未在convert中声明
永远不会传递rand来转换参数
兰特从未转换输出


希望这会引导您走上正确的道路:)

关于java - 将随机数更改为键码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13024396/

10-12 06:08