【发布时间】:2014-04-13 10:34:18
【问题描述】:
我有 4 或 5 个 if 语句控制一个 标签 和一个 面板,我有 16 个标签和面板。
目前我想通过将标签和面板标识符传递给另一种方法来缩短它,并尝试像这样以String 这样做
String panel="fourFour";
String label="lFourFour";
imaging(panel, label, damage, 4, 4);
public void imaging(String panel, String label, int[]damage, int x, int y){
if (Game.here(x,y)==1) {
Color myColor = Color.decode("#8C0834");
panel.setBackground(myColor);
label.setIcon(new ImageIcon("Space.jpg"));
}
但是我似乎无法做到这一点。
有没有办法将标签和面板标识符传递给另一个方法?
【问题讨论】:
-
在
imaging函数中,panel是一个String,但是你在它上面调用setBackground(),这不是String方法。如果您真的想使用字符串来标识您的面板,则需要Map<String, JPanel>来跟踪字符串名称和实际面板对象之间的链接。但更大的问题是,为什么要传递这些字符串,而不是面板引用? -
我正在尝试创建一个可以调用的方法来处理所有 16 个面板和带有 4 或 5 个 if 语句的标签。现在我的页面上有 16*5 If 语句,看起来很乱。如果我可以将标签和面板标识符传递给这个方法,我可以只有 5 个 If 语句,但我需要一种传递标签和面板的方法,否则我会留下 16*5 if 语句而不是 1。这有意义吗?