IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

Affichage d'une sauvegarde


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 96
    Points : 51
    Points
    51
    Par défaut Affichage d'une sauvegarde
    Bonsoir , je vous explique mon soucis , mes images sont stockés dans des arraylists . J initialise un tableau [15][15] , la sauvegarde dans un fichier texte fonctionne mais lorsque je recharge la map mes images se placent toutes a la suite des autres sur la première ligne au lieu de se recharger à l'endroit ou elle a été sauvegarder.

    Merci de votre futurs aides

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
     
    public void Reload() {
    		try{
    			filer= new FileReader("map/map1");
    			int i=0;
    			int x=0;
    			int y=0;
     
    			Fleurss = new ArrayList<Fleurs>();
    			Arbres = new ArrayList<Arbre>();
    			Carres = new ArrayList<Carre>();
    			Triangles = new ArrayList<Triangle>();
     
    		while((i = filer.read()) != -1){
    			char strImg = (char) i;
     
    			if(strImg == '0'){
    				EditeurJeu[x][y] = "FLEUR";
    				fleurs = new Fleurs(x*25, y*25);
    				Fleurss.add(fleurs);
    			}
    			else if(strImg == '1'){
    				EditeurJeu[x][y] = "ARBRE";
    				arbre = new Arbre(x*25, y*25);
    				Arbres.add(arbre);
    			}
    			else if(strImg == '2'){
    				EditeurJeu[x][y] = "CARRE";
    				carre = new Carre(x*25, y*25);
    				Carres.add(carre);
    			}
    			else if(strImg == '3'){
    				EditeurJeu[x][y] = "TRIANGLE";
    				triangle = new Triangle(x*25, y*25);
    				Triangles.add(triangle);
    			}
     
    				else if(strImg == ' '){
    					EditeurJeu[x][y] = null;
    				}
     
    				// Sinon on depasse le tableau, on passe à la ligne suivante
    				else if(strImg == '\r' || strImg == '\n'){
    					x--;
    				}
     
    				if(x == 14){
    					y++;
    					x=0;
    				}
    				else{
    					x++;
    				}
     
    				}
    			}
    			catch(Exception ex){}
    		repaint();
    		}

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Tu devrais nous montrer ce que tu as dans le fichier que tu charge.

    Mais basiquement tu devrait lire ton fichier ligne par ligne cela serai plus logique par rapport à ta construction :
    http://java.developpez.com/faq/java/...eLigneParLigne


    Cela donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.ArrayList;
     
    public class Test {
    	public static class JeuElement {
    		int x, y;
     
    		public JeuElement(int x, int y) {
    			this.x = x;
    			this.y = y;
    		}
    	}
     
    	public static class Triangle extends JeuElement {
    		public Triangle(int x, int y) {
    			super(x, y);
    		}
    	}
     
    	public static class Carre extends JeuElement {
    		public Carre(int x, int y) {
    			super(x, y);
    		}
    	}
     
    	public static class Arbre extends JeuElement {
    		public Arbre(int x, int y) {
    			super(x, y);
    		}
    	}
     
    	public static class Fleurs extends JeuElement {
    		public Fleurs(int x, int y) {
    			super(x, y);
    		}
    	}
     
    	private static String[][] EditeurJeu = new String[15][15];
    	public static ArrayList<Fleurs> Fleurss = new ArrayList<Fleurs>();
    	public static ArrayList<Arbre> Arbres = new ArrayList<Arbre>();
    	public static ArrayList<Carre> Carres = new ArrayList<Carre>();
    	public static ArrayList<Triangle> Triangles = new ArrayList<Triangle>();
     
    	public static void main(String[] args) {
    		String filePath = "map.txt";
     
    		try {
    			// Création du flux bufférisé sur un FileReader, immédiatement suivi par un
    			// try/finally, ce qui permet de ne fermer le flux QUE s'il le reader
    			// est correctement instancié (évite les NullPointerException)
    			BufferedReader buff = new BufferedReader(new FileReader(filePath));
     
    			try {
    				String line;
    				// Lecture du fichier ligne par ligne. Cette boucle se termine
    				// quand la méthode retourne la valeur null.
    				int x = 0;
    				while ((line = buff.readLine()) != null) {
    					traiterLigne(line, x);
    					x++;
    					// faites ici votre traitement
    				}
    			} finally {
    				// dans tous les cas, on ferme nos flux
    				buff.close();
    			}
    		} catch (IOException ioe) {
    			// erreur de fermeture des flux
    			System.out.println("Erreur --" + ioe.toString());
    		}
    		for (int x = 0; x < EditeurJeu.length; x++) {
    			for (int y = 0; y < EditeurJeu[x].length; y++) {
    				if(EditeurJeu[x][y] != null){
    					System.out.println("En position "+x+"/"+y+" "+EditeurJeu[x][y]);
    				}
    			}
    		}
    	}
     
    	private static void traiterLigne(String line, int ligneIndex) {
    		char[] ligneAsTab = line.toCharArray();
    		for (int i = 0; i < ligneAsTab.length; i++) {
    			char charImg = ligneAsTab[i];
    			if (i >= EditeurJeu[ligneIndex].length) {
    				throw new RuntimeException("Ligne trop longue pour le jeu !");
    			}
    			switch (charImg) {
    			case '0':
    				EditeurJeu[ligneIndex][i] = "FLEUR";
    				Fleurs fleurs = new Fleurs(ligneIndex * 25, i * 25);
    				Fleurss.add(fleurs);
    			case '1':
    				EditeurJeu[ligneIndex][i] = "ARBRE";
    				Arbre arbre = new Arbre(ligneIndex * 25, i * 25);
    				Arbres.add(arbre);
    			case '2':
    				EditeurJeu[ligneIndex][i] = "CARRE";
    				Carre carre = new Carre(ligneIndex * 25, i * 25);
    				Carres.add(carre);
    				break;
    			case '3':
    				EditeurJeu[ligneIndex][i] = "TRIANGLE";
    				Triangle triangle = new Triangle(ligneIndex * 25, i * 25);
    				Triangles.add(triangle);
    				break;
     
    			default:
    				break;
    			}
    		}
    	}
     
    }
    000000000000000
    011111111111110
    010000000000010
    010222222222010
    010200000002010
    010203333302010
    010203000302010
    010203000302010
    010203000302010
    010203333302010
    010200000002010
    010222222222010
    010000000000010
    011111111111110
    000000000000000
    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 96
    Points : 51
    Points
    51
    Par défaut
    Nom : b.JPG
Affichages : 103
Taille : 21,2 Ko

    Je les ai mises en diagonale et cela s'affiche comme cela

  4. #4
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Visuellement, il me semble que tu n'as pas de diagonale. Mais ce n'est pas important.
    Tente d'adapter mon code sur ton implémentation. Cela devrai fonctionné.

    J'ai complété l'ensemble pour qu’il soit directement exécutable pour que tu puisse tester. Mise à par le fichier "map.txt" qui doit avoir le contenu que tu veux. (Change le nom du fichier si nécessaire).

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 96
    Points : 51
    Points
    51
    Par défaut
    Finalement j ai réussi avec mon système de base
    Merci de votre aide

Discussions similaires

  1. Affichage ds une DBGrid
    Par TieumB dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/01/2004, 16h52
  2. batch pour faire une sauvegarde
    Par bibiodp dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 13/08/2003, 13h09
  3. Affichage d'une boite de dialogue nonmodale avec MFC
    Par the.cable.guy dans le forum Windows
    Réponses: 3
    Dernier message: 04/07/2003, 17h59
  4. Affichage d'une image sous linux
    Par Braim dans le forum x86 32-bits / 64-bits
    Réponses: 5
    Dernier message: 25/03/2003, 10h41
  5. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo