Maison >Java >javaDidacticiel >Comment puis-je récupérer efficacement les index X et Y des éléments dans un GridLayout Java ?

Comment puis-je récupérer efficacement les index X et Y des éléments dans un GridLayout Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-19 21:21:09502parcourir

How Can I Efficiently Retrieve the X and Y Indexes of Elements in a Java GridLayout?

Récupération des index X et Y des éléments dans un GridLayout

En Java, la localisation des index X/Y d'un élément spécifique dans un GridLayout peut être obtenue grâce à une méthode plus approche efficace que l’itération manuelle dans un tableau bidimensionnel. La méthode suivante montre comment obtenir la référence du bouton en fonction de ses coordonnées de grille :

private JButton getGridButton(int r, int c) {
    int index = r * N + c;
    return list.get(index);
}

Cette méthode prend la ligne r et la colonne c comme paramètres et calcule l'index dans la liste de boutons sous-jacente (liste). En accédant à l'élément à cet index, nous récupérons la référence du bouton correspondant.

Pour démontrer cela, le code suivant crée une grille de 5x5 boutons et ajoute un écouteur de clics à chaque bouton. Lorsqu'un bouton est cliqué, l'écouteur de clic compare la référence du bouton trouvé avec la référence du bouton d'origine pour vérifier leur identité :

private JButton createGridButton(final int row, final int col) {
    final JButton b = new JButton("r" + row + ",c" + col);
    b.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            JButton gb = GridButtonPanel.this.getGridButton(row, col);
            System.out.println("r" + row + ",c" + col
                + " " + (b == gb)
                + " " + (b.equals(gb)));
        }
    });
    return b;
}

En tirant parti de cette méthode, nous pouvons récupérer efficacement les index X et Y de n'importe quel bouton. au sein du GridLayout, ce qui facilite l'exécution de diverses actions sur des éléments de grille spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn