【发布时间】:2011-06-12 02:53:03
【问题描述】:
我有这些代码行。我知道您不能将非最终变量传递给内部类,但我需要将变量i 传递给匿名内部类以用作座位ID。你能建议这样做的方法吗?
JButton [] seats = new JButton [40]; //creating a pointer to the buttonsArray
for (int i = 0; i < 40; i++)
{
seats[i] = new JButton();//creating the buttons
seats[i].setPreferredSize(new Dimension(50,25));//button width
panel4seating.add(seats[i]);//adding the buttons to the panels
seats[i].addActionListener(new ActionListener()
{ //anonymous inner class
public void actionPerformed(ActionEvent evt)
{
String firstName = (String)JOptionPane.showInputDialog("Enter First Name");
String lastName = (String)JOptionPane.showInputDialog("Enter Last Name");
sw101.AddPassenger(firstName, lastName, seatingID);
}
});
}
【问题讨论】:
-
如果您提供演示该错误的最少量可编译代码,您将获得更好的答案。你是说上面代码中有“seatingID”的地方是“i”吗?
-
实际上没有错误,我试图找出一种方法将变量 i 从 for 循环传递到内部类,以便我可以将其分配为座位 ID
标签: java inner-classes anonymous-inner-class