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?

Author: CoderCroc, 2014-04-13

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