Java 使用开关盒组件在颜色之间进行选择(下拉列表中的值)

Java 使用开关盒组件在颜色之间进行选择(下拉列表中的值),java,drop-down-menu,colors,switch-statement,paintcomponent,Java,Drop Down Menu,Colors,Switch Statement,Paintcomponent,作为学校作业,我需要用java中的paintcomponent绘制一个苹果树。用户必须能够从下拉列表中选择颜色,这将改变苹果的颜色 这就是我被困的地方。我尝试在开关盒中创建颜色,但这导致了一些错误 下面您看到的并不是全部代码,而是苹果所必需的部分。 我认为,出于某种原因,java不执行switch case 提前谢谢 // get the values from the dropbox private void jComboBoxKleurActionPerformed(java.awt.eve

作为学校作业,我需要用java中的
paintcomponent
绘制一个苹果树。用户必须能够从下拉列表中选择颜色,这将改变苹果的颜色

这就是我被困的地方。我尝试在开关盒中创建颜色,但这导致了一些错误

下面您看到的并不是全部代码,而是苹果所必需的部分。 我认为,出于某种原因,java不执行switch case

提前谢谢

// get the values from the dropbox
private void jComboBoxKleurActionPerformed(java.awt.event.ActionEvent evt)
{                                               
   appel = (String)jComboBoxKleur.getSelectedItem();
   repaint();
}

// create the colors for the apples (kleur means color in dutch & appel means apple in     dutch)
switch (appel){
   case "Gifgroen":
      Color kleur = new Color(184, 208, 68);
      break;
   case "Rood":
      Color kleur = new Color(142, 41, 13);
      break;
   case "Geelgroen":
      Color kleur = new Color(215, 255, 1);
      break;
   default:
      Color kleur = new Color(142, 41, 13);
      break;
    }


     //draw the apples
     g.setColor(kleur);
     g.fillOval(30, 650, 40, 40);
     g.setColor(Color.black);
     g.fillRect(50, 640, 5, 10);

虽然你没有说你犯的一系列错误:我可以很容易地假设,它首先说的是:

变量
kleur
已经定义:是,因为您已经在第一个
案例中声明了kleur,并且它属于
开关的块。任何后续的
kleur
声明都是不必要的。 从
case
语句中的
Color kleur
中删除
Color
。而是在
开关
块之外声明您的
颜色kleur

    Color kleur;  // <--- here declaring it

    switch (appel){
    case "Gifgroen":
        kleur = new Color(184, 208, 68); // ere initializing it if needed
        break;
    case "Rood":
        kleur = new Color(142, 41, 13);
        break;
    // other cases 
    default:
        kleur = new Color(142, 41, 13);
        break;
}

Color kleur;//这个编译吗?太奇怪了,谢谢你,它成功了!我没有发布错误,因为我认为问题的解释更清楚,不管怎样,你理解我的意思,问题得到了解决。谢谢你的时间和努力