Écrire un Tableau 2D sur une JFrame java
Alors je me demandais, je suis nouveau sur java, mais je sais que mon chemin autour de cela, mais je voulais faire un 2d jeu de tuiles.
Maintenant j'ai entendu dire que vous pouvez le faire avec un Tableau 2d pour faire la carte.
Mais comment faire pour que la carte s'affichent à l'écran, JFrame, comme des images?
Donc, un exemple de la pile/carte ici:
1111111111
1011011001
1001100011
0000100011
0000000000
2222222222
0 = blueSky.png
1 = cloud.png
2 = grass.png
Merci!
EDIT 2
J'ai donc maintenant à ceci:
import javax.swing.*;
import java.awt.*;
public class Game extends JFrame {
private static final long serialVersionUID = 1L;
public static void main(String[] args) {
ImageIcon sky = new ImageIcon ("/Users/pro/Desktop/sky.png");
JPanel grid = new JPanel();
grid.setLayout(new GridLayout(25, 25));
for (int i = 0; i < 25; i++) {
for (int n = 0; n < 25; n++) {
grid.add(new JLabel(sky));
}
}
JFrame frame = new JFrame("Map");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//frame.setPreferredSize(new Dimension(640, 400));
frame.add(grid);
frame.pack();
frame.setVisible(true);
}
}
ce imprime certaines tuiles avec la photo du ciel, mais comment puis-je faire la ligne du bas d'un autre tableau?
OriginalL'auteur Jan Vos | 2011-07-29
Vous devez vous connecter pour publier un commentaire.
Je considère le tableau 2D comme le non-GUI modèle, que les données lui-même serait susceptible d'être détenu dans un fichier de données, peut-être un fichier texte, qu'il y aurait des méthodes pour lire les données à être occupé par un tableau 2D de peut-être entiers, peut-être personnalisé classes de Cellules (de nouveau, encore sans interface graphique). Ensuite l'interface graphique devrait interpréter le modèle et l'affichage des données dans certains manière logique. Cela peut être fait par la création d'une grille 2D de JLabels détenus par un Composite qui utilise GridLayout, et ensuite utiliser ImageIcons pour contenir les images, et de définir l'icône de chaque JLabel en fonction de l'état du modèle.
Edit 1
Si possible, les classes utilisées sont les suivantes:
Edit 2
sujet de votre question:
Je voudrais utiliser un observateur/observable modèle et ajouter un écouteur pour le modèle. Chaque fois que les changements de modèle, il doit donc informer le GUI ou de la vue. Le point de vue que le tableau de données, permettrait de parcourir et modifier les icônes d'image qui a besoin de changer comme il parcourt le tableau.
Bien, comment puis-je régler l'image de droite pour everyLabel ?
veuillez voir la section "Modifier 2" dans ma réponse ci-dessus.
que Edit 2 truc que je ne comprends pas vraiment beaucoup de ça :p peut-être à cause de mon manque de l'anglais ou du java, mais pouvez-vous faire un ptit exemple ? ou est-il beaucoup de travail ?
C'est un peu de travail, si je suis capable de le faire dans un modèle-vue-contrôle de mode de que mon post original proposé. Une idée est d'utiliser une Carte comme une table de hachage à la carte enum pour le ImageIcon.
OriginalL'auteur Hovercraft Full Of Eels
Je vous suggère d'utiliser
JLabel
s avec des icônes et des laïcs à l'aide deGridLayout
.Liés à la question /réponse avec des exemples de code et de capture d'écran:
OriginalL'auteur aioobe