作为学校的一项作业,我需要在Java中使用paintcomponent绘制一个苹果树。用户必须能够从下拉菜单中选择一种颜色,这将改变苹果的颜色。

现在,这就是我遇到的问题。我尝试在开关盒中创建颜色,但这会导致一些错误。

您在下面看到的不是全部代码,而是苹果必需的部分。
我认为出于某些原因Java无法执行切换条件。

提前致谢!

// 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已经定义:是的,因为您已经在第一个case中声明了kleur,它属于switch的块。后续的kleur声明都是不必要的。
Color语句内的Color kleur中删除​​case。而是在Color kleur块之外声明一次switch

    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;
}

07-25 22:36