【发布时间】:2014-07-13 08:25:39
【问题描述】:
从java中的字符串值创建对现有对象的引用
在我的项目中,有很多按钮(目前大约 70 个);每个按钮都会在数据库中的 jlabel 中提出一个问题。 现在将根据用户选择是否要查看问题,或者是否标记了问题的答案,为每个按钮分配了颜色(精确的 jButton 来自 swings)。
一种方法是为每个 jbutton 的 actionperformed 编写代码,并在每个 jbutton 中使用 if-else 以获取确切的颜色,然后使用 setBackground 属性将其更改为特定颜色。 但是,如果必须稍微更改代码,这会导致很大的问题。然后我必须复制这 70 个按钮中的每一个的更改,将来可能会增加。
我在想的是一种创建函数并传递包含按钮名称的字符串参数的方法。 所以它将是: void selectfromdatabase(字符串按钮名称) { //(.).setBackground(Color.yellow);
我参考了一些 SO 论坛,发现了一个叫做 Reflection 的东西。但据我所知,它只适用于方法而不是对象。还是我错过了什么???
【问题讨论】:
-
你可以试试地图
Map<String, JButton>。这可以包含所有按钮,它们将通过它们的名称来识别。如果您写map.get(name),您将收到具有该名称的按钮对象,如果此名称未知,则为 null。 -
您可以创建一个有2个参数的方法,并将第一个作为按钮名称传递给changeColor('btnName',Color.Yellow),可以通过反射轻松解决