2013-02-08 50 views
0

我有25個jButton,我想從一個循環中改變它們的文本。這裏是我的1個按鈕代碼..如何重命名JButtons集?

void changeText(){ 
      jButton1.setText(jButton1.getText().toUpperCase()); 

    } 

我想要做的所有其他按鍵相同,無需編寫每一個方法。

可以使用類似的東西嗎?

void changeText(){ 
     for(int i=0;i<25;i++){ 
      String x = "jButton"+i; 
      x.setText(x.getText().toUpperCase()); 
     } 
    } 

當然這不會工作。請給我一個方法。

+0

你可以傳遞一個JButton作爲參數傳遞給changeText()和環路內(迭代的數組或集合持有你的JButton對象)稱之爲 – Dan 2013-02-08 17:10:28

回答

2

您可以通過將按鈕添加到集合來完成此操作。

事情是這樣的:

// initialization of jbuttons: 
List<JButton> buttons = new ArrayList<JButton>(); 
JButton jbutton1 = new JButton(); 
// .. set properties 
buttons.add(jbutton1); 

// add more jbuttons to the list 

稍後,您可以通過按鈕對列表進行迭代:

for (JButton button : buttons) { 
    button.setText(button.getText().toUpperCase()); 
} 
+0

感謝您的幫助。這很好。我如何將所有按鈕添加到使用循環列表? – Hasi007 2013-02-08 17:30:09

+0

['ButtonTest'](http://stackoverflow.com/a/3420431/230513)是一個相關的例子。 – trashgod 2013-02-08 18:09:32