2013-11-23 39 views
0

作爲學校的作業,我需要在java中使用paintcomponent來繪製蘋果的appeltree。用戶必須能夠從下拉菜單中選擇顏色,這將改變蘋果的顏色。使用開關盒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); 
+0

這是否編譯?會很奇怪。 – Florian

回答

1

雖然你不是說對一羣你有錯誤的東西:我可以很容易地認爲,第一件事情是說:

可變kleur已經定義:是的,因爲,你有已在您的第一個case中聲明kleur,它屬於switch的區塊。任何後續的聲明kleur是不必要的。 從case聲明中刪除從Color kleur。而是在switch區塊之外申報一次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; 
} 
+0

謝謝你的工作!我沒有發佈錯誤,因爲我認爲問題的解釋更清楚,無論如何你明白我的意思,問題就解決了。感謝您的時間和精力 –