Java: passaggio di un identificatore di etichetta come stringa
Ho 4 o 5 istruzioni if che controllano un'etichetta e un pannello e ho 16 etichette e pannelli.
Al momento vorrei accorciare questo passando gli identificatori di etichetta e pannello in un altro metodo e ho provato a farlo come String
in questo modo
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"));
}
Tuttavia mi sembra di non essere in grado di farlo.
C'è comunque da passare gli identificatori di etichetta e pannello in un altro metodo?
0
1 answers
Potresti creare una classe specializzata per una funzione così spesso utilizzata, ad esempio:
public class DamagePanel extends JPanel {
private JLabel label;
public DamagePanel(final String ident) {
label = new JLabel(ident);
this.add(label);
}
public String getIdent() {
return label.getText();
}
public void reportDamage(int[]damage, int x, int y) {
...
}
}
1
Author: Maarten Bodewes, 2014-04-13 10:48:48