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

AWT/Swing Java Discussion :

Numerotation des sommets d'un graphe


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Djibouti

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2020
    Messages : 14
    Points : 14
    Points
    14
    Par défaut Numerotation des sommets d'un graphe
    Bonjour, j'ai crée une interface graphique qui affiche un graphe. Je veux maintenant que tous les sommets de mon graphe soit numéroté et je sais vraiment pas comment faire. Aidez moi svp

    Voici mes 2 classes :
    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
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.*;
     
    import dessin.graphe;
     
    public class interfaceG {
     
     
    	public static void main(String[] args) {
    		JFrame fen = new JFrame();
    		fen.setTitle("Menu");
    		fen.setSize(600,400);
    		fen.setLocationRelativeTo(null);
    		fen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
     
    		JPanel panel = new JPanel();
    		fen.setContentPane(panel);
     
    		JMenuBar MyMenuBar = new JMenuBar();
    		panel.add(MyMenuBar);
    		MyMenuBar.setBounds(0, 0, 600, 30);
     
    		JMenu MenuFichier = new JMenu("Fichier");
    		MyMenuBar.add(MenuFichier);
    		JMenu MenuEdition = new JMenu("Edition");
    		MyMenuBar.add(MenuEdition);
     
     
     
    		JMenuItem MenuNouveau = new JMenuItem("Nouveau");
    		JMenuItem MenuOuvrir = new JMenuItem("Ouvrir");
    		JMenuItem MenuEnregistrer = new JMenuItem("Enregistrer");
    		JMenuItem MenuQuitter = new JMenuItem("Quitter");
    		JMenuItem MenuAffichage= new JMenuItem("Affichage");
    		MenuFichier.add(MenuNouveau);
    		MenuFichier.add(MenuOuvrir);
    		MenuFichier.add(MenuEnregistrer);
    		MenuFichier.add(MenuQuitter);
    		MenuFichier.add(MenuAffichage);
    		fen.setJMenuBar(MyMenuBar);
    		MenuQuitter.addActionListener(new ActionListener(){
     
    			public void actionPerformed(ActionEvent e) {
     
    				fen.dispose();
    			}
    		});
    		MenuAffichage.addActionListener(new ActionListener() {
     
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				graphe a= new graphe();
    				fen.setContentPane(a);
    				fen.setVisible(true);
    			}
     
    		});
     
     
     
    	fen.setVisible(true);
    }}
    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
    import java.awt.Color;
    import java.awt.Graphics;
     
    import javax.swing.*;
     
    public class graphe extends JComponent {
     
    	public void paint(Graphics g) {
    		int j=0;
    		super.paint(g);
     
    		j = 5;
    		g.fillOval(100, 50, 10, 10);
    		g.fillOval(500, 50, 10, 10);
    		g.drawLine(100+j, 50+j, 500+j, 50+j);
    		g.fillOval(500, 160, 10, 10);
    		g.fillOval(100, 160, 10, 10);
    		g.drawLine(500+j, 160+j, 100+j, 160+j);
    		g.drawLine(100+j, 50+j, 500+j, 160+j);
    		g.drawLine(500+j, 50+j, 100+j, 160+j);
    		g.drawLine(500+j, 50+j, 100+j, 160+j);
    		g.drawLine(500+j, 50+j, 500+j, 160+j);
    	}
    }

  2. #2
    Membre habitué

    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2020
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Février 2020
    Messages : 167
    Points : 162
    Points
    162
    Par défaut afficher le nom des sommets
    bonjour,

    il faut utiliser la méthode "drawString()" qui te permet de "dessiner un texte", et ainsi intégrer des des chaines dans un dessin.

    J'ai fait un essai, ca a l'air de fonctionner.

    Tu peux améliorer l'affichage pour ne pas tomber sur une ligne du tracé en ajoutant un offset sur x ou y selon le besoin.

    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
    package aide_graphe;
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;
     
    public class Main {
     
    	public static void main(String[] args)  {
    		JFrame fen = new JFrame();
    		fen.setTitle("Menu");
    		fen.setSize(600,400);
    		fen.setLocationRelativeTo(null);
    		fen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
     
    		JPanel panel = new JPanel();
    		fen.setContentPane(panel);
     
    		JMenuBar MyMenuBar = new JMenuBar();
    		panel.add(MyMenuBar);
    		MyMenuBar.setBounds(0, 0, 600, 30);
     
    		JMenu MenuFichier = new JMenu("Fichier");
    		MyMenuBar.add(MenuFichier);
    		JMenu MenuEdition = new JMenu("Edition");
    		MyMenuBar.add(MenuEdition);
     
     
     
    		JMenuItem MenuNouveau = new JMenuItem("Nouveau");
    		JMenuItem MenuOuvrir = new JMenuItem("Ouvrir");
    		JMenuItem MenuEnregistrer = new JMenuItem("Enregistrer");
    		JMenuItem MenuQuitter = new JMenuItem("Quitter");
    		JMenuItem MenuAffichage= new JMenuItem("Affichage");
    		MenuFichier.add(MenuNouveau);
    		MenuFichier.add(MenuOuvrir);
    		MenuFichier.add(MenuEnregistrer);
    		MenuFichier.add(MenuQuitter);
    		MenuFichier.add(MenuAffichage);
    		fen.setJMenuBar(MyMenuBar);
    		MenuQuitter.addActionListener(new ActionListener(){
     
     
     
     
     
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				fen.dispose();
     
    			}
    		});
    		MenuAffichage.addActionListener(new ActionListener() {
     
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				Graphe a= new Graphe();
    				fen.setContentPane(a);
    				fen.setVisible(true);
    			}
     
    		});
     
     
     
    	fen.setVisible(true);
    }
     
    	}

    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
    package aide_graphe;
     
    import java.awt.Graphics;
     
    import javax.swing.JComponent;
     
    public class Graphe extends JComponent {
     
    	public void paint(Graphics g) {
    		int j=0;
    		int xo1 = 100;
    		int xo2 = 500;
    		int xo3 = 500;
    		int xo4 = 100;
     
    		int yo1 = 50;
    		int yo2 = 50;
    		int yo3 = 160;
    		int yo4 = 160;
     
     
    		super.paint(g);
     
    		j = 5;
     
    		g.fillOval(xo1, yo1, 10, 10);
    		g.drawString("P1", xo1, yo1);
     
    		g.fillOval(xo2, yo2, 10, 10);
    		g.drawString("P2", xo2, yo2);
     
    		g.fillOval(xo3, yo3, 10, 10);
    		g.drawString("P3", xo3, yo3);
     
    		g.fillOval(xo4, yo4, 10, 10);
    		g.drawString("P4", xo4, yo4);
     
    		g.drawLine(100+j, 50+j, 500+j, 50+j);
    		g.drawLine(500+j, 160+j, 100+j, 160+j);
    		g.drawLine(100+j, 50+j, 500+j, 160+j);
    		g.drawLine(500+j, 50+j, 100+j, 160+j);
    		g.drawLine(500+j, 50+j, 100+j, 160+j);
    		g.drawLine(500+j, 50+j, 500+j, 160+j);
    	}
    }

    Voila le résultat, j'espère que cela te permettra d'avancer....
    Nom : Aide_Graphe.png
Affichages : 60
Taille : 9,4 Ko

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/03/2018, 16h31
  2. Algorithme de coloration des sommets d'un graphe
    Par lamyaee dans le forum MATLAB
    Réponses: 6
    Dernier message: 09/02/2012, 22h06
  3. sélectionner les graphes à partir des sommets
    Par fd1954 dans le forum MATLAB
    Réponses: 1
    Dernier message: 08/02/2010, 20h45
  4. coloration des sommets d'un graphes en c++
    Par michalove dans le forum C++
    Réponses: 5
    Dernier message: 06/03/2008, 02h12
  5. Calcul du plu court chemin entre 2 sommets d'un graphe valué
    Par atlasm dans le forum Algorithmes et structures de données
    Réponses: 25
    Dernier message: 07/08/2005, 17h06

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