2014-10-31 31 views
0

,所以我创造了一堆按钮 JButton button1 = new JButton("Button 1"); JButton button2 = new JButton("Button 2"); JButton button3 = new JButton("Button 3"); JButton button4 = new JButton("Button 4"); JButton button5 = new JButton("Button 5"); JButton button6 = new JButton("Button 6"); JButton button7 = new JButton("Button 7"); JButton button8 = new JButton("Button 8"); JButton button9 = new JButton("Button 9");是否有一个简单的方法来编辑变量名,以满足搜索或编辑参数

和当我去找到他们后,我想要做一个查找与正。所以按钮1我想 n=1 button(n).setIcon(); to change button 1's icon or n=5 button(n).setIcon(); to change button 5's icon

但是,这并不工作,有没有办法可以轻松地做到这一点。 这样做的目的,如果这是为了允许另一种方法发送一个int到这个方法和int作为一个标识符来定义我想进行更改的按钮

+3

数组是你的朋友 – Reimeus 2014-10-31 20:20:38

+0

使用'array []'或者'List ' – 2014-10-31 20:21:29

+0

是的,它就是所谓的“数组”。或者,也可能是Java中的“List”,具体取决于您是使用基本数组还是集合对象。 – 2014-10-31 20:21:39

回答

4

不用创建一束自己JButton对象中的,创建大小的数组9.

JButton[] buttons = new JButton[9]; 
for(int i = 0; i < 9; ++i) 
{ 
    buttons[i] = new JButton("Button " + (i+1)); 
} 

然后,你可以做

n=1; 
buttons[n-1].setIcon(); 
+1

我想给你+1和hooch, t在循环体的周围有'{}',并且你应该总是在循环体(和'if'或'else'体)周围使用'{}',尽管有时你“不必”。 – 2014-10-31 20:25:28

+0

@HotLicks如果仅仅需要+1就可以了:) – Daniel 2014-10-31 20:26:14

+0

为什么在循环体中使用'{}'如果只有一行? – Chryb 2014-10-31 20:28:35

1

我想你可以将它们添加到一个ArrayList。 ..

ArrayList<JButton> buttons = new ArrayList<JButton>(); 

buttons.add(button1); 
buttons.add(button2); 
etc.. 

然后:

buttons.get(n-1).setIcon(blah); // Entering 1 will update button 1... 2 will update button 2... etc.. 
1

您应该所有的按钮添加到按钮的列表。就像在例如:

List<JButton> buttons = new ArrayList<Button>(); 
buttons.add(button1); 
... 

比你可以用

buttons.get(n).setIcon(...); 

容易解决的按钮或者,你可以创建一个数组。数组在空间使用上更好,但更容易处理列表。

希望有所帮助。