如何定义配色方案选项?

时间:2014-11-14 16:32:30

标签: color-scheme

任何人都可以帮我解决以下问题吗?我有一个使用Eclipse开发的SWT GUI java应用程序。并非所有这一切都特别相关。

我有一个类来保存首选项,以便简化只有颜色。该选项是一个成功读取的文件中保存的单个整数。 color_option是6种RGB颜色的八种颜色方案之一。所以我尝试过:

class Preferences {
        int color_option = 0;
        String[] color_option_name = new String[8];
        RGB[] rgb01=new RGB[8];
        RGB[] rgb02=new RGB[8];
        RGB[] rgb03=new RGB[8];
        RGB[] rgb04=new RGB[8];
        RGB[] rgb05=new RGB[8];
        RGB[] rgb06=new RGB[8];
        Color[] color01=new Color[8];
        Color[] color02=new Color[8];
        Color[] color03=new Color[8];
        Color[] color04=new Color[8];
        Color[] color05=new Color[8];
        Color[] color06=new Color[8];

我已经意识到这些颜色就像文字而不是变量,所以上面会导致非常平淡的显示。我试过了:

if(color_option == 0) {
                color_option_name[color_option] = "Earth";
                rgb01[color_option]=new RGB(218, 165, 32);
                color01[color_option]=new Color(Display.getCurrent(),rgb01[color_option]);
                rgb02[color_option]=new RGB(188, 143, 143);

我想将颜色用于:

g0_opens_or_creates_project.setBackground(

if (script_deletion_flag[x]!=null && script_deletion_flag[x] ) {

itemS.setForeground(thisPreferences.color04[thisPreferences.color_option]);
           }
           else
           {
itemS.setForeground(thisPreferences.color05[thisPreferences.color_option]);
           }

可能很明显但是如果有人能够在没有定义每种颜色和许多if语句的情况下阐明如何解决这个问题,这个初学者会非常感激。 Tx在期待中。

1 个答案:

答案 0 :(得分:0)

无论是没有人使用颜色,这很困难,或者说这么简单没有人可以打扰(可能是哈哈)但是对于其他初学者来说这是我提出的最好的,现在已经实现了。

问题围绕RGB和Color不是变量而Color需要是最终的。

所以在我的偏好文件中我有:

地球颜色| 218 | 165 | 32 | 188 | 143 | 143 | 178 | 34 | 34 | 107 | 142 | 35 | 143 | 188 | 143 | 189 | 183 | 107 | 粉彩| 127 | 255 | 212 | 255 | 182 | 193 | 238 | 233 | 233 | 32 | 178 | 170 | 186 | 85 | 211 | 210 | 180 | 140 | 海军| 255 | 255 | 255 | 0 | 0 | 128 | 100 | 149 | 237 | 190 | 190 | 190 | 230 | 230 | 250 | 32 | 178 | 170 | 火| 233 | 150 | 122 | 250 | 128 | 114 | 255 | 160 | 122 | 255 | 165 | 0 | 255 | 140 | 0 | 255 | 127 | 80 | 哥特式| 128 | 0 | 128 | 0 | 0 | 0 | 255 | 255 | 255 | 192 | 192 | 192 | 221 | 160 | 221 | 255 | 228 | 196 | 亮色| 255 | 20 | 147 | 0 | 255 | 0 | 255 | 255 | 0 | 0 | 255 | 255 | 255 | 0 | 0 | 0 | 128 | 128 | 布卢姆| 238 | 221 | 130 | 205 | 92 | 92 | 255 | 140 | 0 | 255 | 69 | 0 | 255 | 0 | 0 | 232 | 150 | 122 | ICE | 255 | 250 | 250 | 230 | 230 | 250 | 192 | 192 | 192 | 176 | 196 | 222 | 95 | 158 | 160 | 100 | 149 | 237 |

所以有6种颜色的8种颜色方案,每种颜色由r,g和b整数(0-255)指定。

读过我的偏好文件编码如下:

    // This should be chosen color scheme
    String[] color_rgb = lineoptions.split("\\|");


    // Gothic
         color_int[0] = Integer.valueOf(color_rgb[1]);
         color_int[1] = Integer.valueOf(color_rgb[2]);
         color_int[2] = Integer.valueOf(color_rgb[3]);
         color_int[3] = Integer.valueOf(color_rgb[4]);
         color_int[4] = Integer.valueOf(color_rgb[5]);
         color_int[5] = Integer.valueOf(color_rgb[6]);
    .....etc

然后:

RGB rgb101=new RGB(color_int[0], color_int[1], color_int[2]);
    RGB rgb102=new RGB(color_int[3], color_int[4], color_int[5]);
    RGB rgb103=new RGB(color_int[6], color_int[7], color_int[8]);
    RGB rgb104=new RGB(color_int[9], color_int[10], color_int[11]);
    RGB rgb105=new RGB(color_int[12], color_int[13], color_int[14]);
    RGB rgb106=new RGB(color_int[15], color_int[16], color_int[17]);
    final Color color01 = new Color(Display.getCurrent(), rgb101);
    final Color color02 = new Color(Display.getCurrent(), rgb102);
    final Color color03 = new Color(Display.getCurrent(), rgb103);
    final Color color04 = new Color(Display.getCurrent(), rgb104);
    final Color color05 = new Color(Display.getCurrent(), rgb105);
    final Color color06 = new Color(Display.getCurrent(), rgb106);

当然,必须在新颜色选择生效之前重新启动应用程序。

希望可能对某人有帮助,可能还有更好的答案?干杯奈杰尔