2014-01-19 61 views
0

我在製作Java Applet時遇到問題,我試圖讓屏幕上顯示的按鈕出現在屏幕上,然後在執行單擊操作時執行一個操作。我創建了一個for循環,並添加了按鈕,但是當我運行該程序時,沒有按鈕出現。有什麼建議麼?從循環中不顯示按鈕

public class CPT extends Applet 
{ 
    Button Holland, Cuba, Russia, USACal, Austria, Colombia, China, SouthKor, Bangladesh, DomRep; 
    int ranDeal; 
    Label title; 
    Font f; 
    Image globe, signs, plane; 

public void init() 
    { 
     Button Holland = new Button ("Holland"); 
     Button Cuba = new Button ("Cuba"); 
     Button Russia = new Button ("Russia"); 
     Button USACal = new Button ("USA - Cali."); 
     Button Austria = new Button ("Austria"); 
     Button Colombia = new Button ("Colombia"); 
     Button China = new Button ("China"); 
     Button SouthKor = new Button ("South Korea"); 
     Button Bangladesh = new Button ("Bangladesh"); 
     Button DomRep = new Button ("Dom. Rep."); 

    for (int j = 0 ; j >= 4 ; j++) 
    { 

     ranDeal = (int) (Math.random() * 10); 

     if (ranDeal == 1) 
     { 

      add (Holland); 
     } 
     else if (ranDeal == 2) 
     { 

      add (Cuba); 
     } 
     else if (ranDeal == 3) 
     { 

      add (Russia); 
     } 
     else if (ranDeal == 4) 
     { 

      add (USACal); 
     } 
     else if (ranDeal == 5) 
     { 

      add (Austria); 
     } 
     else if (ranDeal == 6) 
     { 

      add (Colombia); 
     } 
     else if (ranDeal == 7) 
     { 

      add (China); 
     } 

     else if (ranDeal == 8) 
     { 

      add (SouthKor); 
     } 
     else if (ranDeal == 9) 
     { 

      add (Bangladesh); 
     } 
     else 
     { 

      add (DomRep); 



     } 

    } 
+1

1)將Applet的佈局管理器從BorderLayout更改爲其他內容,也許是FlowLayout。 2)你沒有考慮隨機變量是否爲0. 3)你應該使用Swing GUI庫,而不是AWT。 **編輯**:以及Peter剛發佈的內容! 1+給他抓這個。 –

+0

請爲班級學習常見的[Java命名約定](http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#73307)(具體用於名稱的情況)方法和屬性名稱並一致使用它們。例如。 'Button Holland'應該是'Button holland' .. –

+0

整個'if .. else'結構可以更好地處理爲'Button []'數組或'switch'語句。在開發GUI之前,你應該已經涵蓋了這兩個'編程101'的概念,更不用說小程序了。 –

回答

3

你永遠不會進入這個循環。

for (int j = 0 ; j >= 4 ; j++) 

我想你的意思。

for (int j = 0 ; j < 4 ; j++) 

此外,在您的for循環的邏輯有這個問題,它可以選擇相同的按鈕一次以上,並分別嘗試添加它不止一次。

+0

謝謝!我覺得自己像個白癡XD – Andrew

+1

@Andrew它發生在每個人:)祝你好運。 –

+1

@Andrew:如果你在編程時偶爾不覺得自己是白癡,那麼你做錯了什麼。趕上peter.petrov! –