作为学校的一项作业,我需要在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;
}