cs_ABF
Messages postés227Date d'inscriptionsamedi 21 mai 2005StatutMembreDernière intervention26 avril 2012
-
15 mai 2008 à 18:16
cs_ABF
Messages postés227Date d'inscriptionsamedi 21 mai 2005StatutMembreDernière intervention26 avril 2012
-
15 mai 2008 à 21:49
Bonjour,
Je voudrais :
0) demander de sélectionner une map
1) charger un fichier texte, le parser en fonction des | et remplir un tableau
2) generer une grille de Jlabel (qui seront mes images)
3) en fonction de mon tableau, associé au Jlabel les images correspondantes
4) tous les x millisecondes, faire une action (timer)
Ma form :
j'ai une form avec un Jpanel (Jpanel)
un Jbutton Quitter
Ci dessous ma classe complete
(err sur: Container cont = getContentPane(); dans gestGrille)
/**
*
* @author Brice
*/
public class Viewer extends javax.swing.JFrame {
static Timer t;
static String [][] tblMap; //tbl de la map 2 dimensions
static JLabel[] tblGrille = new JLabel[450];
/** Creates new form Viewer */
public Viewer() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
btnEnd = new javax.swing.JButton();
jPanel = new javax.swing.JPanel();
private void btnEndActionPerformed(java.awt.event.ActionEvent evt) {
new Splash().setVisible(true);
dispose();
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Viewer().setVisible(true);
//demande une map a charger
String temp="";
try
{
DataInputStream fichier;
fichier=new DataInputStream(new BufferedInputStream(new FileInputStream("chemin_du_fichier" )));
temp=fichier.readUTF();
//fichier ouvert
//genere la grille
gestGrille gen= new gestGrille();
gen.generer();
loadMap(temp);
fichier.close();
//lance le jeu
t = new Timer();
t.schedule(new Jeu(), 0, 200);
/*static class genGrille extends JPanel{
private JLabel[] tbl = new JLabel[450];
void generer()
{
// Auncun espacement entre les cases de la grille
setLayout(new GridLayout(15,30,0,0));
// Création et Ajout des images 450
for (int i=1 ; i<450 ; i++) {
GridBagConstraints contraintes= new GridBagConstraints();
contraintes.gridx = x;//la position par rapport a l axe des absciss
contraintes.gridy = y;//la position vertical
contraintes.gridwidth = largeur;
contraintes.gridheight = hauteur;
contraintes.fill = typeElargissement;
contraintes.anchor = typePosition;
contraintes.ipadx = etalementHorizontal;
contraintes.ipady = etalementVertical;
void generer()
{
// création Jpanel
Container cont = getContentPane();
panel = new JPanel();
cont.add(panel);
// Le gestionnaire de mise en forme du Panel panel est redéfini
// en grille de 15 lignes, 30 colonnes avec 0 pixels entre chaques
panel.setLayout(new GridLayout(15,30,0,0));
// Création des images 450 (15*30) et ajout au Panel panel
for (int i=1 ; i<450 ; i++)
{
GridBagConstraints contraintes= new GridBagConstraints();
contraintes.gridx = 30*i;//la position par rapport a l axe des absciss
contraintes.gridy = 15*i;//la position vertical
contraintes.gridwidth = 900;
contraintes.gridheight = 450;
contraintes.fill = 1;//typeElargissement |
contraintes.anchor = 1;//typePosition | PAS COMPRIS
contraintes.ipadx = 1;//etalementHorizontal |
contraintes.ipady = 1;//etalementVertical |
// Met une image sur le Jlabel choisit
void attribImage(int numJlabel,String repImg)
{tblGrille[numJlabel].setIcon(new javax.swing.ImageIcon(repImg));
}
}
// CHARGER LE FICHIER
// PARSE CHAQUE LIGNE
// MET EN FORME LE TABLEAU de la MAP
static void loadMap(String fic) throws FileNotFoundException{
int ligne; //ligne du tbl de la map
int colonne; //colonne du tbl de la map
ligne = ligne + 1; // on passe à la ligne suivante
}
scanner.close();
}
static class Jeu extends TimerTask {
private int xTrain; // horizontale
private int yTrain; // verticale
private Icon imgTmp; //image temporaire sur laquelle on va aller
// on actionne le train
public void run(){
// on regarde sur chacun des 4 case a cote
if(xTrain>0){ // si on est pas a gauche
if (yTrain>0 && yTrain<30){ // si on est pas en bordure Haut Bas
if (tblMap[xTrain][yTrain] != ""){
======
CHARGER (je veux qu'à l'ouverture de ma form, une fenetre de dialogue s'ouvre et me demande de choisir un fichier .txt) se sera la map
======
DataInputStream fichier;
fichier=new DataInputStream(new BufferedInputStream(new FileInputStream("chemin_du_fichier" )));
temp=fichier.readUTF();
cs_ABF
Messages postés227Date d'inscriptionsamedi 21 mai 2005StatutMembreDernière intervention26 avril 2012 15 mai 2008 à 21:49
2) Je veux générer une sorte de quadrillage dans ma form
J'aimerais faire une grille de 30 de la large x 15 de haut (30x15 cases)
Je veux représenter mes cases par des Jlabel (pour pouvoir y affecter une image)
==> CLASSE genGrille
Par la suite, via un timer (voir code au dessus), je veux pouvoir changer l'image (Icon) d'une case