Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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中如何将颜色转换为int?_Java_Minecraft - Fatal编程技术网

在java中如何将颜色转换为int?

在java中如何将颜色转换为int?,java,minecraft,Java,Minecraft,我有一段文字,我想做一个随机的颜色。我正在使用Minecraft GUI库。这是我的密码: public void onEvent(event e) { if (e instanceof EventRender) { Gui.drawRect(5, 30, 70, 30 + Modules.Categories.values().length * 16 + 4, 0x90000000 ); // Here I want random color

我有一段文字,我想做一个随机的颜色。我正在使用Minecraft GUI库。这是我的密码:

public void onEvent(event e) {
    if (e instanceof EventRender) {
        Gui.drawRect(5, 30, 70, 30 + Modules.Categories.values().length * 16 + 4, 0x90000000 );

        // Here I want random color
        Gui.drawRect(7, 33 + currentTab * 16, 9, 33 + currentTab * 16 + 12, -1);

        int count = 0;
        for(Categories c: Modules.Categories.values()) {
            fr.drawStringWithShadow(c.name, 10, 36 + count * 16, -1);
             count++;
         }

        List<Modules> modules =  Client.getModulesByCategory(Modules.Categories.values()[currentTab]);
        if(expanded) {
            if(modules.size() <= 0) 
                return;
 
        Gui.drawRect(70, 30, 70 + 68, 30 + modules.size() * 16 + 4, 0x90000000 );
        Gui.drawRect(72, 33 + category.ModuleIndex * 16, 7 + 68, 33 + category.ModuleIndex * 16 + 12, -1));
         
        for (Modules m : Client.getModulesByCategory(Modules.Categories.values()[currentTab]) ) {
            fr.drawStringWithShadow(m.name , 10 + 70, -29 + count * 16, -1);
            count++;
        }
    }
}
Gui.drawRect方法末尾的-1表示我想要的随机颜色。我在这里找到了一个随机的颜色生成器。代码是new ColorintMath.random*0x1000000。但是当我尝试插入那段代码来代替-1时,它说:

超级类只接受INT作为颜色

有没有办法把这段代码转换成整数? 该类的完整代码:

Minecraft GUI库中的drawRect方法签名是:

公共静态void drawRectint left、int top、int right、int bottom、int color

因此,您不能只是从Color类插入对象来代替int-Color参数。在这种情况下,您可以只使用intMath.random*0x1000000,而不创建颜色对象。因此,您的代码部分应该如下所示:

Gui.drawRect(7, 33 + currentTab * 16, 9, 33 + currentTab * 16 + 12, (int)(Math.random() * 0x1000000));

我的问题有问题吗。人们似乎投了很多反对票。请给我你对我的问题的任何反馈New ColorintMath.random*0x1000000似乎没问题。您可以提供您尝试过的代码的更多部分,但出现错误。嗯,到目前为止,这是我为该领域编写的所有代码。然后请提供完整的代码。此时很难从您的语句中进行调试class@webetreesorg谢谢,成功了也许吧,但它不能回答你的问题。您的问题是如何将颜色转换为int。如果您只能访问颜色对象,会发生什么情况?你将如何解决这个问题。所以我会再问你一次-阅读颜色API以获得合适的方法如何?这有用吗?@camickr也许OP设定的标题是错误的,但正文中提到的上下文是不同的。问题主体中使用的API,它不使用来自颜色的对象。在搜索了随机颜色之后,OP可能浏览了使用颜色的SO帖子,认为它可以使用。但是颜色类在这种情况下没有效果。所以,或多或少,这回答了OP的原始问题,但可能不是标题。我知道它不使用颜色对象。我评论的目的是让OP在发布问题之前进行思考。不阅读API就无法编程。如果OP花了几分钟读取Color API,他们会找到一个返回Color对象int值的方法。也许OP决定不使用随机颜色,而是使用color.RED。如何得到它的int值?通过阅读API并理解API的方法,您不会将自己局限于只在特殊情况下工作的解决方案,这就是这个答案的作用。我现在明白你的意图了。谢谢你的澄清。