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

Agents de placement/Fenêtres Java Discussion :

Tableau dans JFrame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Points : 4
    Points
    4
    Par défaut Tableau dans JFrame
    Bonjour,
    Je suppose que la question à déjà était posé seulement je débute en Java (j'utilise Eclipse) donc j'aurai grandement besoin de votre aide pour mon projet de Science de l'Ingénieur.
    Je dois créer un programme qui permettrait de filtrer des habits (une dizaine pour commencer) en fonction de plusieurs paramètres comme la couleur, le style vestimentaire, les motifs.
    En regardant différents post et tuto, j'en déduis que je dois créer un tableau dans un JFrame mais je ne sais pas par quoi commencer.
    Merci d'avance

  2. #2
    Membre confirmé
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Points : 646
    Points
    646
    Par défaut
    Citation Envoyé par youngyeezer Voir le message
    ......j'en déduis que je dois créer un tableau dans un JFrame mais je ne sais pas par quoi commencer.
    Merci d'avance
    Bonsoir
    ta question est extrêmement vaste
    a tout hasard, ce petit code te permet de créer un tableau dans une JFrame

    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
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
     
     
    public class Main extends JFrame {
     
    	private JTable table;
    	private String[] title= {"colonne1", "colonne2", "colonne3"};  //entete du tableau
    	private Object[][] data= {                                 //données du tableau
    			{"ligne1", "encore ligne1", "tjrs ligne1"},
    			{"ligne2", "encore ligne2", "tjrs ligne2"}
    	};
    	private JScrollPane scroll;       //jscrollpane pour faire défiler le tableau
     
    	public Main() {
     
    		this.setSize(400, 400);
    		this.setTitle("Mon tableau");
    		this.setLocationRelativeTo(null);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		table= new JTable(data, title);   //initialiser le tableau
    		scroll= new JScrollPane(table);    
     
    		this.getContentPane().add(scroll);
    		this.setVisible(true);
    	}
     
    	public static void main(String[] args) {
     
    		Main main= new Main();
    	}
    }
    Il y'a des façons plus élaborés de créer un tableau, étant donné que ta question n'est pas vraiment précise je t'ai donné la plus simple

    mais peut être que tu pourrais mieux préciser ton problème ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Tout d'abord merci de m'avoir répondu
    Ensuite, désolé si je n'ai pas été assez clair dans mon dernier post, donc pour faire plus simple, ce que je voudrais dans un premier temps ce serai comme sur cette photo ci-joins, un tableau visible avec la liste des habits (rentrés préalablement) et de leurs caractéristiques (- couleur : bleu, gris, noir,..etc ; - style vestimentaire : classe, bureau, détendu ; - motifs : carreaux, simple, imprimé), la colonne image comportant une image de l'habit en question.
    J'espère que j'ai été plus clair, et dans l'attente d'une réponse je te souhaite une bonne fin de soirée
    Images attachées Images attachées  

  4. #4
    Membre confirmé
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Points : 646
    Points
    646
    Par défaut
    Bonsoir

    Pour avoir un tableau comme tu le décris et pour l'image dans la cellule je te propose ce code
    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
    public class Main extends JFrame {
     
    	private JTable table;
    	private String[] title= {"N° habit", "Image", "Couleur", "Style vestimentaire", "Motif"};
    	private ImageIcon icon = new ImageIcon("sablier.png");	
    	private Object[][] data= {                               
    			{"Habit 1", icon, "Beige", "Bureau", "Carreaux"},
    	};
    	private JScrollPane scroll;
    	private DefaultTableModel model;
     
    	public Main() {
     
    		this.setSize(400, 400);
    		this.setTitle("Mon tableau");
    		this.setLocationRelativeTo(null);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		model= new DefaultTableModel(data, title);
     
    		table= new JTable(model);
    		table.getColumn("Image").setCellRenderer(new IconRenderer());
    		table.setRowHeight(50);
     
    		scroll= new JScrollPane(table);    
     
    		this.getContentPane().add(scroll);
    		this.setVisible(true);
    	}
     
    	private class IconRenderer extends DefaultTableCellRenderer {
     
    		public IconRenderer() {
     
    			super();
    		}
     
    		protected void setValue(Object value) {
     
    			if(value == null)
    				setText("");
    			else
    				setIcon((Icon) value);
    		}
    	}
     
    	public static void main(String[] args) {
     
    		Main main= new Main();
    	}
    }
    Pour avoir une image dans ta cellule il suffit de définir une classe qui hérite de "DefaultTableCellRenderer".

    Comme tu vois le tableau est rempli qu'avec une seule ligne, c'est surtout pour te donner un exemple.

    J'espère que ça t'aidera, n'hésite pas à poser d'autres questions.

  5. #5
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup !
    J'ai enfin pu créer ce tableau et l'afficher. En revanche, je n'ai pas bien compris comment mettre une image dans une cellule.
    Ensuite j'aimerais ajouter deux boutons comme sur la photo, un pour ajouter un vêtement et un autre pour supprimer un vêtement.
    Pouvez-vous m'aider ?
    Images attachées Images attachées  

  6. #6
    Membre confirmé
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Points : 646
    Points
    646
    Par défaut
    Bonjour

    Poste le code que tu as fait (en utilisant les balises code) ce sera plus simple de t'aider comme ça

  7. #7
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Bonjour,
    Il y a des lignes qui ne servent à rien

    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
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
     
    public class Banque extends JFrame {
     
    	private JPanel contentPane;
    	private final Action action = new SwingAction();
     
    	private JTable table;
    	private JScrollPane scroll;
    	private DefaultTableModel model;
     
     
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					Banque frame3 = new Banque();
    					frame3.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
     
     
    	public Banque() {
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 575, 630);
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		setContentPane(contentPane);
    		contentPane.setLayout(null);
     
    		table= new JTable(new DefaultTableModel(
    			new Object[][] {
    				{"Habit 1", null, "Marron", "Bureau", "Carreaux"}, 			
    				{"Habit 2", null, "Blanc", "Classe", "Simple"},				
    				{"Habit 3", null, "Gris", "Détendu", "Carreaux"}, 			
    				{"Habit 4", null, "Rouge", "Sport", "Imprimé"},				
    				{"Habit 5", null, "Bleu", "Bureau", "Simple"},				
    				{"Habit 6", null, "Noir", "Classe", "Simple"},				
    				{"Habit 7", null, "Noir", "Sport", "Simple"},		
    				{"Habit 8", null, "Bleu", "Bureau", "Simple"},		
    				{"Habit 9", null, "Beige", "Bureau", "Simple"},			
    				{"Habit 10", null, "Noir", "Classe", "Simple"},			
    				{"Habit 11", null, "Noir", "Classe", "Simple"},			
    				{"Habit 12", null, "Noir", "Sport", "Simple"},		
    				{"Habit 13", null, "Bleu", "Détendu", "Simple"},	
    				{"Habit 14", null, "Gris", "Détendu", "Imprimé"},	
     
     
    			},
    			new String[] {
    				"N° habit", "Image", "Couleur", "Style vestimentaire", "Motif"
    			}
    		));
    		table.getColumn("Image").setCellRenderer(new IconRenderer());
    		getContentPane().setLayout(null);
    		table.setRowHeight(50);
     
    		scroll= new JScrollPane(table);    
    		scroll.setBounds(15, 110, 530, 400);
    		getContentPane().add(scroll);
     
    		this.getContentPane().add(scroll);
     
    		//Création du bouton retour
    		JButton retour = new JButton("Retour");
    		retour.setAction(action);
    		retour.setFont(new Font("Arial Rounded MT Bold", Font.PLAIN, 12));
    		retour.setBounds(0, 0, 104, 34);
    		contentPane.add(retour);
    		getContentPane().add(retour);
     
    		JButton btnAjouterUnHabit = new JButton("Ajouter un v\u00EAtement");
    		btnAjouterUnHabit.setBounds(50, 520, 200, 50);
    		contentPane.add(btnAjouterUnHabit);
     
    		JButton Ajouter = new JButton("Supprimer un v\u00EAtement");
    		Ajouter.setBounds(310, 520, 200, 50);
    		contentPane.add(Ajouter);
     
    		JLabel lblModifierLaBanque = new JLabel("Modifier la banque d'habits");
    		lblModifierLaBanque.setFont(new Font("Monotype Corsiva", Font.PLAIN, 50));
    		lblModifierLaBanque.setBounds(35, 50, 492, 55);
    		contentPane.add(lblModifierLaBanque);
     
    		//Initialisation du tableau
    		int nbrHabit = 10;
    		int Type = 3;
    		int Couleur = 7;
    		int Motif = 3;
    		int Température = 3;
    		int Style = 4;
    		int tab[][]= new int [nbrHabit][Type+Couleur+Motif+Température+Style];
     
     
    		//Création du fond d'écran
    		JLabel lblNewLabel = new JLabel("");
    		lblNewLabel.setFont(new Font("Bradley Hand ITC", Font.PLAIN, 38));
    		lblNewLabel.setBackground(new Color(135, 206, 250));
    		lblNewLabel.setForeground(new Color(0, 191, 255));
    		lblNewLabel.setIcon(new ImageIcon(BrainyDressv1.class.getResource("/images/wallpaper.jpg")));
    		lblNewLabel.setBounds(0, 0, 559, 592);
    		contentPane.add(lblNewLabel);
     
     
    	}
    }
     
    class IconRenderer extends DefaultTableCellRenderer {
     
    	public IconRenderer() {
     
    		super();
    	}
     
    	protected void setValue(Object value) {
     
    		if(value == null)
    			setText("");
    		else
    			setIcon((Icon) value);
    	}
    }
     
     
    	class SwingAction extends AbstractAction {
    		public SwingAction() {
    			putValue(NAME, "Retour");
    			putValue(SHORT_DESCRIPTION, "Some short description");
    		}
    		public void actionPerformed(ActionEvent e) {
    			MenuPrince frame2 = new MenuPrince();
    			frame2.setVisible(true);
    		}
    	}

  8. #8
    Membre confirmé
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Points : 646
    Points
    646
    Par défaut
    Bonjour

    Pour les images, je pense que c'est ok. Pour les boutons, je t'ai mis des commentaires dans le code
    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
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    public class Banque extends JFrame {
     
    	private JPanel contentPane;
    	private final Action action = new SwingAction();
     	private JTable table;
    	private JScrollPane scroll;
    	private DefaultTableModel model;
     
     	public static void main(String[] args) {
     
     		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					Banque frame3 = new Banque();
    					frame3.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
     
    	public Banque() {
     
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		contentPane.setLayout(null);
     
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 575, 630);
    		setContentPane(contentPane);
     
    		//l'image que tu mets dans la cellule est de type ImageIcon
    		ImageIcon icon= new ImageIcon("sablier.png");
    		ImageIcon icon2= new ImageIcon("cles.png");
     
    		Object[][] data= new Object[][] {
    			{"Habit 1", icon, "Marron", "Bureau", "Carreaux"}, 	//tu l'ajoute dans ta ligne comme n'importe quelle données	
    			{"Habit 2", icon2, "Blanc", "Classe", "Simple"},				
    			{"Habit 3", null, "Gris", "Détendu", "Carreaux"}, 			
    			{"Habit 4", null, "Rouge", "Sport", "Imprimé"},				
    			{"Habit 5", null, "Bleu", "Bureau", "Simple"},				
    			{"Habit 6", null, "Noir", "Classe", "Simple"},				
    			{"Habit 7", null, "Noir", "Sport", "Simple"},		
    			{"Habit 8", null, "Bleu", "Bureau", "Simple"},		
    			{"Habit 9", null, "Beige", "Bureau", "Simple"},			
    			{"Habit 10", null, "Noir", "Classe", "Simple"},			
    			{"Habit 11", null, "Noir", "Classe", "Simple"},			
    			{"Habit 12", null, "Noir", "Sport", "Simple"},		
    			{"Habit 13", null, "Bleu", "Détendu", "Simple"},	
    			{"Habit 14", null, "Gris", "Détendu", "Imprimé"},	 
    		};
     
    		String[] title= new String[] {"N° habit", "Image", "Couleur", "Style vestimentaire", "Motif"};
     
    		DefaultTableModel model= new DefaultTableModel(data, title);
    		table= new JTable(model);
    		table.getColumn("Image").setCellRenderer(new IconRenderer());
    		table.setRowHeight(50);
     
    		// model.setValueAt(icon, 0, 1);    ou tu les ajoutes comme ça
    		// model.setValueAt(icon2, 1, 1);
     
    		scroll= new JScrollPane(table);    
    		scroll.setBounds(15, 110, 530, 400);
     
    		this.getContentPane().add(scroll);
     
    		//Création du bouton retour
    		JButton retour = new JButton("Retour");
    		retour.setAction(action);
    		retour.setFont(new Font("Arial Rounded MT Bold", Font.PLAIN, 12));
    		retour.setBounds(0, 0, 104, 34);
    		contentPane.add(retour);
     
    		JButton btnAjouterUnHabit = new JButton("Ajouter un v\u00EAtement");
    		btnAjouterUnHabit.setBounds(50, 520, 200, 50);
    		btnAjouterUnHabit.addActionListener(new ActionListener() {
    			//ajouter une action au bouton
    			@Override
    			public void actionPerformed(ActionEvent arg0) {
    				//tes actions ici
    				//ajouter une ligne avec model.addRow(Object[] rowData);
    			}
    		});
    		contentPane.add(btnAjouterUnHabit);
     
    		JButton Ajouter = new JButton("Supprimer un v\u00EAtement");
    		Ajouter.setBounds(310, 520, 200, 50);
    		Ajouter.addActionListener(new ActionListener() {
    			//ajouter une action au bouton
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				//tes actions ici
    				//suppprimer avec model.removeRow(int indexDeLaLigneASupprimer);
    			}
    		});
    		contentPane.add(Ajouter);
     
    		JLabel lblModifierLaBanque = new JLabel("Modifier la banque d'habits");
    		lblModifierLaBanque.setFont(new Font("Monotype Corsiva", Font.PLAIN, 50));
    		lblModifierLaBanque.setBounds(35, 50, 492, 55);
    		contentPane.add(lblModifierLaBanque);
     
    		//Initialisation du tableau
    		int nbrHabit = 10;
    		int Type = 3;
    		int Couleur = 7;
    		int Motif = 3;
    		int Température = 3;
    		int Style = 4;
    		int tab[][]= new int [nbrHabit][Type+Couleur+Motif+Température+Style];
     
     
    		//Création du fond d'écran
    		JLabel lblNewLabel = new JLabel("");
    		lblNewLabel.setFont(new Font("Bradley Hand ITC", Font.PLAIN, 38));
    		lblNewLabel.setBackground(new Color(135, 206, 250));
    		lblNewLabel.setForeground(new Color(0, 191, 255));
    		lblNewLabel.setIcon(new ImageIcon(BrainyDressv1.class.getResource("/images/wallpaper.jpg")));
    		lblNewLabel.setBounds(0, 0, 559, 592);
    		contentPane.add(lblNewLabel);
    	}
    }
     
    class IconRenderer extends DefaultTableCellRenderer {
     
    	public IconRenderer() {
     
    		super();
    	}
     
    	protected void setValue(Object value) {
     
    		if(value == null)
    			setIcon(null);
    		else
    			setIcon((Icon) value);
    	}
    }
     
     
    	class SwingAction extends AbstractAction {
    		public SwingAction() {
    			putValue(NAME, "Retour");
    			putValue(SHORT_DESCRIPTION, "Some short description");
    		}
    		public void actionPerformed(ActionEvent e) {
    			MenuPrince frame2 = new MenuPrince();
    			frame2.setVisible(true);
    		}
    	}
    Voila j'espère que ça t'aidera

  9. #9
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Bonsoir,
    merci pour votre réponse mais j'ai toujours quelques problèmes.
    Lorsque je met DefaultTableModel, ligne 53, j'ai une erreur car dans les parenthèses il y a "data" et "title" qui ne sont pas initiées, logique.
    Mais quand je met comme vous : Object[][] data= new Object[][] {...} et [] String[] title= new String[] {...}
    2ème problème : Je ne sais pas vraiment quoi mettre et où en ce qui concerne les ActionListener
    J'ai mis des annotations pour essayer d'être un peu plus clair ^^
    Désolé si mes questions semble simplistes mais j'ai commencé le Java que depuis quelques mois donc je ne connais pas encore grand chose.
    Merci en tout cas de m'aider

    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
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
     
    public class Banque extends JFrame {
     
    	private JPanel contentPane;
    	private final Action action = new SwingAction();
     
    	private JTable table;
    	private JScrollPane scroll;
    	private DefaultTableModel model; 
     
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					Banque frame3 = new Banque();
    					frame3.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
     
    	public Banque() {
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 575, 630);
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		setContentPane(contentPane);
    		contentPane.setLayout(null);
     
    		ImageIcon icon= new ImageIcon("Chemise-Marron-Bureau-Carreaux.jpg");
     
    		table= new JTable(new DefaultTableModel(
    			new Object[][] {
    				{"Habit 1", icon, "Marron", "Bureau", "Carreaux"}, 			// Chemise 	Bureau	X
    				{"Habit 2", icon, "Blanc", "Classe", "Simple"},				// Chemise 	Classe	X
    				{"Habit 3", icon, "Gris", "Détendu", "Carreaux"}, 			// Chemise 	Détendu	X
    				{"Habit 4", icon, "Rouge", "Sport", "Imprimé"},				// T-Shirt 	Sport	X
    				{"Habit 5", icon, "Bleu", "Bureau", "Simple"},				// Chemise 	Bureau	X
    				{"Habit 6", icon, "Noir", "Classe", "Simple"},				// Chemise 	Classe	X
    				{"Habit 7", icon, "Noir", "Sport", "Simple"},				// Pantalon Sport	X
    				{"Habit 8", icon, "Bleu", "Bureau", "Simple"},				// Veste 	Bureau	X
    				{"Habit 9", icon, "Beige", "Bureau", "Simple"},				// Pantalon Bureau	X
    				{"Habit 10", icon, "Noir", "Classe", "Simple"},				// Pantalon	Classe	X
    				{"Habit 11", icon, "Noir", "Classe", "Simple"},				// Veste	Classe	X
    				{"Habit 12", icon, "Noir", "Sport", "Simple"},				// Veste	Sport	X
    				{"Habit 13", icon, "Bleu", "Détendu", "Simple"},			// Pantalon	Détendu	X
    				{"Habit 14", icon, "Gris", "Détendu", "Imprimé"},			// Pull		Détendu	X
    			},
    			new String[] {"N° habit", "Image", "Couleur", "Style vestimentaire", "Motif"}
    		));
    		DefaultTableModel model= new DefaultTableModel(data, title); // Les variables (je les appelle comme ça, mais je ne pense qu'elles en sont) ne sont pas itinitiées donc erreur 
    		table= new JTable(model);	//Cette ligne donne une donne une erreur java.lang.IllegalArgumentException:
    		table.getColumn("Image").setCellRenderer(new IconRenderer());
    		table.setRowHeight(50);
     
    		scroll= new JScrollPane(table);    
    		scroll.setBounds(15, 110, 530, 400);
    		getContentPane().add(scroll);
     
    		this.getContentPane().add(scroll);
     
    		//Création du bouton retour
    		JButton retour = new JButton("Retour");
    		retour.setAction(action);
    		retour.setFont(new Font("Arial Rounded MT Bold", Font.PLAIN, 12));
    		retour.setBounds(0, 0, 104, 34);
    		contentPane.add(retour);
    		getContentPane().add(retour);
     
    		JButton Ajouter = new JButton("Ajouter un vêtement");
    		Ajouter.setBounds(50, 520, 200, 50);
    		Ajouter.addActionListener(new ActionListener() {
    				// Quelles actions ou types d'actions dois-je mettre ?
    			public void actionPerformed(ActionEvent arg0)  {
    				// 	Dois-je mettre la meme action que ligne 75 ?
    				}
    		});
    		contentPane.add(Ajouter);
     
    		JButton Supprimer = new JButton("Supprimer un vêtement");
    		Supprimer.setBounds(310, 520, 200, 50);
    		Supprimer.addActionListener(new ActionListener() {
    				// Même problème que pour la fonction Ajouter donc même genre de solution je suppose
    			public void actionPerformed(ActionEvent e) {
    				// Même problème que pour la fonction Ajouter donc même genre de solution je suppose
    			}
    		});
    		contentPane.add(Supprimer);
     
    		JLabel lblModifierLaBanque = new JLabel("Modifier la banque d'habits");
    		lblModifierLaBanque.setFont(new Font("Monotype Corsiva", Font.PLAIN, 50));
    		lblModifierLaBanque.setBounds(35, 50, 492, 55);
    		contentPane.add(lblModifierLaBanque);
     
    		//Création du fond d'écran
    		JLabel lblNewLabel = new JLabel("");
    		lblNewLabel.setFont(new Font("Bradley Hand ITC", Font.PLAIN, 38));
    		lblNewLabel.setBackground(new Color(135, 206, 250));
    		lblNewLabel.setForeground(new Color(0, 191, 255));
    		lblNewLabel.setIcon(new ImageIcon(BrainyDressv1.class.getResource("/images/wallpaper.jpg")));
    		lblNewLabel.setBounds(0, 0, 559, 592);
    		contentPane.add(lblNewLabel);
     
     
    	}
     
    class IconRenderer extends DefaultTableCellRenderer {
    	public IconRenderer() {
    		super();
    	}
    	protected void setValue(Object value) {
    		if(value == null)
    			setText("");
    		else
    			setIcon((Icon) value);
    	}
    }
    	class SwingAction extends AbstractAction {
    		public SwingAction() {
    			putValue(NAME, "Retour");
    			putValue(SHORT_DESCRIPTION, "Some short description");
    		}
    		public void actionPerformed(ActionEvent e) {
    			MenuPrince frame2 = new MenuPrince();
    			frame2.setVisible(true);
    		}
    		}
    }

  10. #10
    Membre confirmé
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Points : 646
    Points
    646
    Par défaut
    Bonsoir
    Lorsque je met DefaultTableModel, ligne 53, j'ai une erreur car dans les parenthèses il y a "data" et "title" qui ne sont pas initiées, logique.
    Mais quand je met comme vous : Object[][] data= new Object[][] {...} et [] String[] title= new String[] {...}
    Comme tu dis c'est logique, je préfère que tu utilises le code que je t'ai donné pour la création du tableau, car tu as besoin du modèle (variable model).

    2ème problème : Je ne sais pas vraiment quoi mettre et où en ce qui concerne les ActionListener
    Pour les ActionListener des bouton ajouter et supprimer je t'ai mis le code, tu n'a pas plus qu'a rajouter l'instruction d'ajout et de suppression. Il faut que tu nous indiques comment sera récupérer les données à insérer dans la table (demander à l'utilisateur via une interface ?? )

    J'ai mis des annotations pour essayer d'être un peu plus clair ^^
    Voici ton code commenté pour t'expliquer tes erreurs.
    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
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    public class Banque extends JFrame {
     
    	private JPanel contentPane;
    	private final Action action = new SwingAction();  //a quoi ça sert ?????
     	private JTable table;
    	private JScrollPane scroll;
    	private DefaultTableModel model; 
     
    	public static void main(String[] args) {
     
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					Banque frame3 = new Banque();
    					frame3.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
     
    	public Banque() {
     
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 575, 630);
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		setContentPane(contentPane);
    		contentPane.setLayout(null);
     
    		ImageIcon icon= new ImageIcon("Chemise-Marron-Bureau-Carreaux.jpg");
     
    		//là je vois que tu mets la même image pour toutes les lignes
    		//si tu veux mettre pour chaque ligne une image tu dois alors créer
    		//une ImageIcon pour chaque ligne et les nommer différement bien sûr
    		//icon1, icon2, icon3...
     
    		//de plus les instructions délimitées par //**** et //*****
    		//****************
    		table= new JTable(new DefaultTableModel(
    			new Object[][] {
    				{"Habit 1", icon, "Marron", "Bureau", "Carreaux"}, 			// Chemise 	Bureau	X
    				{"Habit 2", icon, "Blanc", "Classe", "Simple"},				// Chemise 	Classe	X
    				{"Habit 3", icon, "Gris", "Détendu", "Carreaux"}, 			// Chemise 	Détendu	X
    				{"Habit 4", icon, "Rouge", "Sport", "Imprimé"},				// T-Shirt 	Sport	X
    				{"Habit 5", icon, "Bleu", "Bureau", "Simple"},				// Chemise 	Bureau	X
    				{"Habit 6", icon, "Noir", "Classe", "Simple"},				// Chemise 	Classe	X
    				{"Habit 7", icon, "Noir", "Sport", "Simple"},				// Pantalon Sport	X
    				{"Habit 8", icon, "Bleu", "Bureau", "Simple"},				// Veste 	Bureau	X
    				{"Habit 9", icon, "Beige", "Bureau", "Simple"},				// Pantalon Bureau	X
    				{"Habit 10", icon, "Noir", "Classe", "Simple"},				// Pantalon	Classe	X
    				{"Habit 11", icon, "Noir", "Classe", "Simple"},				// Veste	Classe	X
    				{"Habit 12", icon, "Noir", "Sport", "Simple"},				// Veste	Sport	X
    				{"Habit 13", icon, "Bleu", "Détendu", "Simple"},			// Pantalon	Détendu	X
    				{"Habit 14", icon, "Gris", "Détendu", "Imprimé"},			// Pull		Détendu	X
    			},
    			new String[] {"N° habit", "Image", "Couleur", "Style vestimentaire", "Motif"}
    		));  
    		//*****************   ceci est une création de tableau
     
    		//c'est la même chose que les isntructions suivantes
    		//****************
    		DefaultTableModel model= new DefaultTableModel(data, title); // Les variables (je les appelle comme ça, mais je ne pense qu'elles en sont) ne sont pas itinitiées donc erreur
    		//(absolument alors il faut les initaliser et utiliser plutot cette méthode pour la création du tableau)
    		table= new JTable(model);	//Cette ligne donne une donne une erreur java.lang.IllegalArgumentException: (c'est normal vu qu'il y'a une erreur dans la création du model)
    		//****************** 
     
    		table.getColumn("Image").setCellRenderer(new IconRenderer());   //la classe IconRenderer s'occupe du rendu de la colonne Image pour afficher ton image
    		table.setRowHeight(50);   //pour la hauteur des lignes
     
    		scroll= new JScrollPane(table);    
    		scroll.setBounds(15, 110, 530, 400);
     
    		//****************************
    		getContentPane().add(scroll);
     		this.getContentPane().add(scroll);  // répétition de l'instruction, et le this désigne ton JFrame à savoir celui là
     		//****************************
     
     		//Création du bouton retour
    		JButton retour = new JButton("Retour");
    		retour.setAction(action);
    		retour.setFont(new Font("Arial Rounded MT Bold", Font.PLAIN, 12));
    		retour.setBounds(0, 0, 104, 34);
     
    		//**************************************
    		contentPane.add(retour);
    		getContentPane().add(retour);
    		/* alors tu choisis soit tu mets setContentPane(contentPane);
    		 * et donc tu utlises contentPane pour ajouter tes composants, comme ça contentPane.add(retour);
    		 * soit tu ne mets pas setContentPane(contentPane);
    		 * et tu ajoutes tes composants comme ça getContentPane().add(retour);
    		 * mais pas les deux :-)
    		 * 
    		 * setContentPane(contentPane); veut dire que tu désigne contentPane comme le conteneur de ton JFrame
    		 * et ceci getContentPane() veut dire que tu utilises le conteneur par défaut de ton JFrame
    		 * 
    		 */
    		//*******************
     
     
    		JButton Ajouter = new JButton("Ajouter un vêtement");
    		Ajouter.setBounds(50, 520, 200, 50);
    		Ajouter.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0)  {
    				// 	Dois-je mettre la meme action que ligne 75 ?
    				//l'action se passe ici et je t'ai donné l'isntruction
    				//je ne peux pas te répondre car je ne sais pas comment tu veux ajouter tes données
    				//(cf. la question sur l'interface graphique dans mon post)
    				}
    		});
    		contentPane.add(Ajouter);
     
    		JButton Supprimer = new JButton("Supprimer un vêtement");
    		Supprimer.setBounds(310, 520, 200, 50);
    		Supprimer.addActionListener(new ActionListener() {
    				// Même problème que pour la fonction Ajouter donc même genre de solution je suppose
    			public void actionPerformed(ActionEvent e) {
    				// Même problème que pour la fonction Ajouter donc même genre de solution je suppose
    				//aucun problème, pas la même solution
    				//ici il faut d'abord que tu saches quelle ligne l'utilisateur veut supprimer
    				//puis tu utilises l'instruction que ej t'ai donné dans mon précédant post
    			}
    		});
    		contentPane.add(Supprimer);
     
    		JLabel lblModifierLaBanque = new JLabel("Modifier la banque d'habits");
    		lblModifierLaBanque.setFont(new Font("Monotype Corsiva", Font.PLAIN, 50));
    		lblModifierLaBanque.setBounds(35, 50, 492, 55);
    		contentPane.add(lblModifierLaBanque);
     
    		//Création du fond d'écran
    		JLabel lblNewLabel = new JLabel("");
    		lblNewLabel.setFont(new Font("Bradley Hand ITC", Font.PLAIN, 38));
    		lblNewLabel.setBackground(new Color(135, 206, 250));
    		lblNewLabel.setForeground(new Color(0, 191, 255));
    		lblNewLabel.setIcon(new ImageIcon(BrainyDressv1.class.getResource("/images/wallpaper.jpg")));
    		lblNewLabel.setBounds(0, 0, 559, 592);
    		contentPane.add(lblNewLabel);
     
     
    	}
     
    class IconRenderer extends DefaultTableCellRenderer {
    	public IconRenderer() {
    		super();
    	}
    	protected void setValue(Object value) {
    		if(value == null)
    			setText("");
    		else
    			setIcon((Icon) value);
    	}
    }
    	class SwingAction extends AbstractAction {    // je ne vois pas trop à quoi ça te sert
    													//c'est censé faire quoi ??
    		public SwingAction() {
    			putValue(NAME, "Retour");
    			putValue(SHORT_DESCRIPTION, "Some short description");
    		}
    		public void actionPerformed(ActionEvent e) {
    			MenuPrince frame2 = new MenuPrince();
    			frame2.setVisible(true);
    		}
    		}
    }
    Désolé si mes questions semble simplistes mais j'ai commencé le Java que depuis quelques mois donc je ne connais pas encore grand chose.
    Poses toutes les questions qui te passent par la tête, même le meilleur d'entre nous est passé par là

  11. #11
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Bonjour, désolé de répondre si tard.
    Pour la définition du tableau comme vous m'avez dit de faire, il me semble que c'est bon car je n'ai plus d'erreurs.
    Pour les images, je crois avoir fait comme vous le disiez mais les images ne s'affichent toujours pas. (Peut-etre un problème au niveau de la taille de l'image ?)
    Je n'ai pas bien compris ce que vous avez écrit ligne 39-40.
    Pour l'ajout d'une ligne, je voudrais la rentrée manuellement par un utilisateur grâce à une interface graphique.
    Les deux codes que vous m'avez donné : model.addRow(Object[] rowData); et model.removeRow(int indexDeLaLigneASupprimer); me donnent une erreur (je ne sais pas comment indiquer la ligne à supprimer).
    Et le bouton retour renvoi à une autre JFrame, qui est un menu principal, car mon programme comporte 2 JFrame en dehors du menu principal : un pour l'affichage des habits et l'autre pour une sélection d'une tenue en fonction des critères des habits.
    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
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
     
    public class Banque extends JFrame {
     
    	private JPanel contentPane;
    	private final Action action = new SwingAction(); // C'est en lien avec le bouton retour
    	private JTable table;
    	private JScrollPane scroll;
    	private DefaultTableModel model; 
     
    	public static void main(String[] args) {
     
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					Banque frame4 = new Banque();
    					frame4.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
     
    	public Banque() {
     
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		contentPane.setLayout(null);
     
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 575, 630);
    		setContentPane(contentPane);
     
     
    		ImageIcon icon= new ImageIcon("Chemise-Marron-Bureau-Carreaux.jpg");
     
    		// Je n'ai pas compris votre phrase
          Object[] [] data= new Object[][] {
    				{"Habit 1", icon, "Marron", "Bureau", "Carreaux"}, 			// Chemise 	Bureau	X
    				{"Habit 2", icon, "Blanc", "Classe", "Simple"},				// Chemise 	Classe	X
    				{"Habit 3", icon, "Gris", "Détendu", "Carreaux"}, 			// Chemise 	Détendu	X
    				{"Habit 4", icon, "Rouge", "Sport", "Imprimé"},				// T-Shirt 	Sport	X
    				{"Habit 5", icon, "Bleu", "Bureau", "Simple"},				// Chemise 	Bureau	X
    				{"Habit 6", icon, "Noir", "Classe", "Simple"},				// Chemise 	Classe	X
    				{"Habit 7", icon, "Noir", "Sport", "Simple"},				// Pantalon Sport	X
    				{"Habit 8", icon, "Bleu", "Bureau", "Simple"},				// Veste 	Bureau	X
    				{"Habit 9", icon, "Beige", "Bureau", "Simple"},				// Pantalon Bureau	X
    				{"Habit 10", icon, "Noir", "Classe", "Simple"},				// Pantalon	Classe	X
    				{"Habit 11", icon, "Noir", "Classe", "Simple"},				// Veste	Classe	X
    				{"Habit 12", icon, "Noir", "Sport", "Simple"},				// Veste	Sport	X
    				{"Habit 13", icon, "Bleu", "Détendu", "Simple"},			// Pantalon	Détendu	X
    				{"Habit 14", icon, "Gris", "Détendu", "Imprimé"},			// Pull		Détendu	X
    			};
    			String[] title= new String[] {"N° habit", "Image", "Couleur", "Style vestimentaire", "Motif"};
     
    			DefaultTableModel model= new DefaultTableModel (data, title);
    			table= new JTable (model);
    			table.getColumn("Image").setCellRenderer(new IconRenderer ());
    			table.setRowHeight (100);
    			model.setValueAt(icon, 0, 1); // Je n'ai pas compris à quoi cela servait.
    			scroll= new JScrollPane(table);    
    			scroll.setBounds(15, 110, 530, 400);
    			getContentPane().add(scroll);
    			this.getContentPane().add(scroll);
     
    		//Création du bouton retour
    		JButton retour = new JButton("Retour");
    		retour.setAction(action);
    		retour.setFont(new Font("Arial Rounded MT Bold", Font.PLAIN, 12));
    		retour.setBounds(0, 0, 104, 34);
    		contentPane.add(retour);
     
    		JButton Ajouter = new JButton("Ajouter un vêtement");
    		Ajouter.setBounds(50, 520, 200, 50);
    		Ajouter.addActionListener(new ActionListener() {
    				public void actionPerformed(ActionEvent arg0)  {
    				// 	Oui voilà je souhaite ajouter la ligne manuellement par l'utilisateur 
    				//	grâce à une interface graphique
     
     
     
    				}
    		});
    		contentPane.add(Ajouter);
     
    		JButton Supprimer = new JButton("Supprimer un vêtement");
    		Supprimer.setBounds(310, 520, 200, 50);
    		Supprimer.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    			 // Comment je détermine la ligne à supprimer ?
    			}
    		});
    		contentPane.add(Supprimer);
     
    		JLabel lblModifierLaBanque = new JLabel("Modifier la banque d'habits");
    		lblModifierLaBanque.setFont(new Font("Monotype Corsiva", Font.PLAIN, 50));
    		lblModifierLaBanque.setBounds(35, 50, 492, 55);
    		contentPane.add(lblModifierLaBanque);
     
    		//Création du fond d'écran
    		JLabel lblNewLabel = new JLabel("");
    		lblNewLabel.setFont(new Font("Bradley Hand ITC", Font.PLAIN, 38));
    		lblNewLabel.setBackground(new Color(135, 206, 250));
    		lblNewLabel.setForeground(new Color(0, 191, 255));
    		lblNewLabel.setIcon(new ImageIcon(BrainyDressv1.class.getResource("/images/wallpaper.jpg")));
    		lblNewLabel.setBounds(0, 0, 559, 592);
    		contentPane.add(lblNewLabel);
     
     
    	}
     
    class IconRenderer extends DefaultTableCellRenderer {
    	public IconRenderer() {
    		super();
    	}
    	protected void setValue(Object value) {
    		if(value == null)
    			setText("");
    		else
    			setIcon((Icon) value);
    	}
    }
    	class SwingAction extends AbstractAction {
    		public SwingAction() {
    			putValue(NAME, "Retour");
    			putValue(SHORT_DESCRIPTION, "Some short description");
    		}
    		public void actionPerformed(ActionEvent e) {
    			MenuPrince frame2 = new MenuPrince();
    			frame2.setVisible(true);
    		}
    		}
    }

  12. #12
    Membre confirmé
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Points : 646
    Points
    646
    Par défaut
    Salut
    Désolé d'avoir tardé, le code est commenté

    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
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    public class Banque extends JFrame {
     
    	private JPanel contentPane;
    	private final Action action = new SwingAction(); // C'est en lien avec le bouton retour
    	private JTable table;
    	private JScrollPane scroll;
    	public DefaultTableModel model; 
     
    	public static void main(String[] args) {
     
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					Banque frame4 = new Banque();
    					frame4.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
     
    	public Banque() {
     
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		contentPane.setLayout(null);
     
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 575, 630);
    		setContentPane(contentPane);
     
     
    		ImageIcon icon= new ImageIcon("Chemise-Marron-Bureau-Carreaux.png");  //essaye avec l'extention ".png"
    		                                                                      //ton image existe bien à la racine de ton projet ? Change aussi son extention
     
    		// Je n'ai pas compris votre phrase
    		//tu affiches la même icmage pour chaque ligne, c'est bien ce que tu veux ?
    		//ou tu veux une image différente pour chaque ligne ?
          Object[] [] data= new Object[][] {
    				{"Habit 1", icon, "Marron", "Bureau", "Carreaux"}, 			// Chemise 	Bureau	X
    				{"Habit 2", icon, "Blanc", "Classe", "Simple"},				// Chemise 	Classe	X
    				{"Habit 3", icon, "Gris", "Détendu", "Carreaux"}, 			// Chemise 	Détendu	X
    				{"Habit 4", icon, "Rouge", "Sport", "Imprimé"},				// T-Shirt 	Sport	X
    				{"Habit 5", icon, "Bleu", "Bureau", "Simple"},				// Chemise 	Bureau	X
    				{"Habit 6", icon, "Noir", "Classe", "Simple"},				// Chemise 	Classe	X
    				{"Habit 7", icon, "Noir", "Sport", "Simple"},				// Pantalon Sport	X
    				{"Habit 8", icon, "Bleu", "Bureau", "Simple"},				// Veste 	Bureau	X
    				{"Habit 9", icon, "Beige", "Bureau", "Simple"},				// Pantalon Bureau	X
    				{"Habit 10", icon, "Noir", "Classe", "Simple"},				// Pantalon	Classe	X
    				{"Habit 11", icon, "Noir", "Classe", "Simple"},				// Veste	Classe	X
    				{"Habit 12", icon, "Noir", "Sport", "Simple"},				// Veste	Sport	X
    				{"Habit 13", icon, "Bleu", "Détendu", "Simple"},			// Pantalon	Détendu	X
    				{"Habit 14", icon, "Gris", "Détendu", "Imprimé"},			// Pull		Détendu	X
    			};
    			String[] title= new String[] {"N° habit", "Image", "Couleur", "Style vestimentaire", "Motif"};
     
    			model= new DefaultTableModel (data, title);
    			table= new JTable (model);
    			table.getColumn("Image").setCellRenderer(new IconRenderer ());
    			table.setRowHeight (100);
    			model.setValueAt(icon, 0, 1); // Je n'ai pas compris à quoi cela servait.
    			                               //cette instruction mets "icon" dans la cellule (ligne:0, colonne:1)
    			                              //mais dans ce cas elle n'est pas nécessaire c'était juste pour te donner un exemple
    			                              //tu peux l'enlever
    			scroll= new JScrollPane(table);    
    			scroll.setBounds(15, 110, 530, 400);
    			getContentPane().add(scroll);
    			this.getContentPane().add(scroll);
     
    		//Création du bouton retour
    		JButton retour = new JButton("Retour");
    		retour.setAction(action);
    		retour.setFont(new Font("Arial Rounded MT Bold", Font.PLAIN, 12));
    		retour.setBounds(0, 0, 104, 34);
    		contentPane.add(retour);
     
    		JButton Ajouter = new JButton("Ajouter un vêtement");
    		Ajouter.setBounds(50, 520, 200, 50);
    		Ajouter.addActionListener(new ActionListener() {
    				public void actionPerformed(ActionEvent arg0)  {
    				// 	Oui voilà je souhaite ajouter la ligne manuellement par l'utilisateur 
    				//	grâce à une interface graphique
     
    			   //développe ton interface graphique, poste son code et je t'aiderai pour ajouter la ligne
     
    				}
    		});
    		contentPane.add(Ajouter);
     
    		JButton Supprimer = new JButton("Supprimer un vêtement");
    		Supprimer.setBounds(310, 520, 200, 50);
    		Supprimer.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    			 // Comment je détermine la ligne à supprimer ?
    				//tu peux développer une fenetre de dialogue (composant JOptionPane)
    				//qui va demander a l'utilisateur le numéro de la ligne à supprimer
     
    				JOptionPane jop = new JOptionPane();
    				String id= jop.showInputDialog(null, "Entrez le numéro de ligne:", "Quelle ligne supprimer ?", JOptionPane.QUESTION_MESSAGE);
    			    int num= Integer.parseInt(id);  //convertir String en int
    			    model.removeRow(num);    //supprime la ligne
    			}
    		});
    		contentPane.add(Supprimer);
     
    		JLabel lblModifierLaBanque = new JLabel("Modifier la banque d'habits");
    		lblModifierLaBanque.setFont(new Font("Monotype Corsiva", Font.PLAIN, 50));
    		lblModifierLaBanque.setBounds(35, 50, 492, 55);
    		contentPane.add(lblModifierLaBanque);
     
    		//Création du fond d'écran
    		JLabel lblNewLabel = new JLabel("");
    		lblNewLabel.setFont(new Font("Bradley Hand ITC", Font.PLAIN, 38));
    		lblNewLabel.setBackground(new Color(135, 206, 250));
    		lblNewLabel.setForeground(new Color(0, 191, 255));
    		lblNewLabel.setIcon(new ImageIcon(BrainyDressv1.class.getResource("/images/wallpaper.jpg")));
    		lblNewLabel.setBounds(0, 0, 559, 592);
    		contentPane.add(lblNewLabel);
    	}
     
    class IconRenderer extends DefaultTableCellRenderer {
    	public IconRenderer() {
    		super();
    	}
    	protected void setValue(Object value) {
    		if(value == null)
    			setText("");
    		else
    			setIcon((Icon) value);
    	}
    }
    	class SwingAction extends AbstractAction {
    		public SwingAction() {
    			putValue(NAME, "Retour");
    			putValue(SHORT_DESCRIPTION, "Some short description");
    		}
    		public void actionPerformed(ActionEvent e) {     //et là ça marche ?
    			MenuPrince frame2 = new MenuPrince();
    			frame2.setVisible(true);
    		}
    		}
    }
    Tiens moi au courant

  13. #13
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Bonsoir, ce n'est pas grave pour le retard, moi même je mets du temps a répondre.
    J'ai écrit toute les notes dans le code, si je ne suis pas assez clair, dites le moi.
    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
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
     
    public class Banque extends JFrame {
     
    	private JPanel contentPane;
    	private final Action action = new SwingAction(); // C'est en lien avec le bouton retour
    	private JTable table;
    	private JScrollPane scroll;
    	private DefaultTableModel model; 
     
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    					Banque frame4 = new Banque();
    					frame4.setVisible(true);
    							   }
    											   });
    											}
     
    	public Banque() {
     
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		contentPane.setLayout(null);
     
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 575, 700);
    		setContentPane(contentPane);
     
    		// Déclaration des images
    		ImageIcon icon= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Marron-Bureau-Carreaux.jpg");
    		ImageIcon icon2= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Blanche-Classe-Simple.jpg");
    		ImageIcon icon3= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Gris-Détendu-Carreaux.jpg");
    		ImageIcon icon4= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/T-Shirt-Rouge-Sport-Imprimé1.jpg");
    		ImageIcon icon5= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Bleu-Bureau-Simple.jpg");
    		ImageIcon icon6= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Noire-Classe-Simple.jpg");
    		ImageIcon icon7= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Noir-Sport-Simple.jpg");
    		ImageIcon icon8= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Veste-Bleu-Bureau-Simple.jpg");
    		ImageIcon icon9= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Beige-Bureau-Simple.jpg");
    		ImageIcon icon10= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Noir-Classe-Simple.jpg");
    		ImageIcon icon11= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Veste-Noir-Classe-Simple.jpg");
    		ImageIcon icon12= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Veste-Noir-Sport-Simple.jpg");
    		ImageIcon icon13= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Bleu-Détendu-Simple.jpg");
    		ImageIcon icon14= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pull-Gris-Détendu-Imprimé.jpg");
     
    		// Déclaration du tableau
    		int num=0;
     
    		Object[] [] data= new Object[][] {
    				{num=num+1, "Habit 1", icon, "Marron", "Bureau", "Carreaux"}, 				// Chemise 	Bureau	X
    				{num=num+1, "Habit 2", icon2, "Blanc", "Classe", "Simple"},					// Chemise 	Classe	X
    				{num=num+1, "Habit 3", icon3, "Marron", "Détendu", "Carreaux"}, 			// Chemise 	Détendu	
    				{num=num+1, "Habit 4", icon4, "Rouge", "Sport", "Imprimé"},					// T-Shirt 	Sport	X
    				{num=num+1, "Habit 5", icon5, "Bleu", "Bureau", "Simple"},					// Chemise 	Bureau	X
    				{num=num+1, "Habit 6", icon6, "Noir", "Classe", "Simple"},					// Chemise 	Classe	X
    				{num=num+1, "Habit 7", icon7, "Noir", "Sport", "Simple"},					// Short	Sport	X
    				{num=num+1, "Habit 8", icon8, "Bleu", "Bureau", "Simple"},					// Veste 	Bureau	X
    				{num=num+1, "Habit 9", icon9, "Beige", "Bureau", "Simple"},					// Pantalon Bureau	X
    				{num=num+1, "Habit 10", icon10, "Noir", "Classe", "Simple"},				// Pantalon	Classe	X
    				{num=num+1, "Habit 11", icon11, "Noir", "Classe", "Simple"},				// Veste	Classe	X
    				{num=num+1, "Habit 12", icon12, "Noir", "Sport", "Simple"},					// Veste	Sport	X
    				{num=num+1, "Habit 13", icon13, "Bleu", "Détendu", "Simple"},				// Pantalon	Détendu	X
    				{num=num+1, "Habit 14", icon14, "Gris", "Détendu", "Imprimé"},				// Pull		Détendu	X
    			};
    			String[] title= new String[] {"N° Ligne","Nom habit", "Image", "Couleur", "Style vestimentaire", "Motif"};
     
    			final DefaultTableModel model= new DefaultTableModel (data, title);
    			table= new JTable (model);
    			table.getColumn("Image").setCellRenderer(new IconRenderer ());
    			table.setRowHeight (100);
    			scroll= new JScrollPane(table);    
    			scroll.setBounds(15, 110, 530, 400);
    			getContentPane().add(scroll);
    			this.getContentPane().add(scroll);
    			// J'aimerais bien centrer le contenu de ma cellule, je sais qu'il faut utiliser
    			// un .setCellRenderer mais je ne se sais pas m'en servir.
     
     
    		//Création du bouton retour
    		JButton retour = new JButton("Retour");
    		retour.setAction(action);
    		retour.setFont(new Font("Arial Rounded MT Bold", Font.PLAIN, 12));
    		retour.setBounds(0, 0, 104, 34);
    		contentPane.add(retour);
     
     
    		// Fonction ajouter un vêtement
    		JButton Ajouter = new JButton("Ajouter un vêtement");
    		Ajouter.setBounds(50, 600, 200, 50);
    		Ajouter.addActionListener(new ActionListener() {
    				public void actionPerformed(ActionEvent arg0)  {
    				// Je voudrais lorsque l'utilisateur appuie sur "Ajouter un vêtement"
    				// Une nouvelle ligne s'affiche et l'utilisateur rempli les cases N° Habit, Couleur, Style Vestimentaire ... etc
    				// En cliquant sur la case et en tapant sur le clavier.			
    													    	   }
    														});
    		contentPane.add(Ajouter);
     
    		// Fonction Supprimer un vêtement
    		JButton Supprimer = new JButton("Supprimer un vêtement");
    		Supprimer.setBounds(310, 600, 200, 50);
    		Supprimer.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
     
    				JOptionPane jop = new JOptionPane();
    				String id= jop.showInputDialog(null, "Entrez le numéro de ligne à supprimer:", JOptionPane.QUESTION_MESSAGE);
    			    int num= Integer.parseInt(id);  
    			    model.removeRow(num -1);
     
    			    // J'ai utilisé votre code, le problème était que l'utilisateur devait compter à chaque fois à quelle ligne 
    			    // correspondait l'habit pour le supprimer, alors j'ai créer une autre colonne pour indiquer le numéro de la ligne
    			    // sauf que quand je supprime la ligne, le numéro de la ligne de l'habit suivant ne change pas, pourtant pour supprimer
    			    // la ligne suivante il faut bien que j'utilise le numéro de la ligne moins le nombre de ligne supprimé avant celle-ci
    			    // Exemple : si je supprime la ligne 3, le numéro de ligne de l'habit 4 reste toujours 4, alors que si je veuc supprimer 
    			    // cette ligne il faut que je rentre le numéro 3.
    			    // En gros le numéro de la ligne en lui même change mais sur l'affichage il reste inchangé.
    			}
    		});
    		contentPane.add(Supprimer);
     
    		// Titre
    		JLabel lblModifierLaBanque = new JLabel("Modifier la banque d'habits");
    		lblModifierLaBanque.setFont(new Font("Monotype Corsiva", Font.PLAIN, 50));
    		lblModifierLaBanque.setBounds(35, 50, 492, 55);
    		contentPane.add(lblModifierLaBanque);
     
    		//Création du fond d'écran
    		JLabel lblNewLabel = new JLabel("");
    		lblNewLabel.setFont(new Font("Bradley Hand ITC", Font.PLAIN, 38));
    		lblNewLabel.setBackground(new Color(135, 206, 250));
    		lblNewLabel.setForeground(new Color(0, 191, 255));
    		lblNewLabel.setIcon(new ImageIcon(BrainyDressv1.class.getResource("/images/wallpaper.jpg")));
    		lblNewLabel.setBounds(0, 0, 559, 662);
    		contentPane.add(lblNewLabel);
     
     
    	}
     
    class IconRenderer extends DefaultTableCellRenderer {
    	public IconRenderer() {
    		super();
    	}
    	protected void setValue(Object value) {
    		if(value == null)
    			setText("");
    		else
    			setIcon((Icon) value);
    	}
    }
    	class SwingAction extends AbstractAction {
    		public SwingAction() {
    			putValue(NAME, "Retour");
    			putValue(SHORT_DESCRIPTION, "Some short description");
    		}
    		public void actionPerformed(ActionEvent e) {
    			MenuPrince frame2 = new MenuPrince();		// Non pas comme je le souhaite, au lieu de faire un retour en arrière 
    														// (car le menu principal et la 1ère fenetre ouverte lors du programme)
    														// Il me crée une nouvelle fênetre par dessus celle active du Menu Principal	
    			frame2.setVisible(true);
    		}
    		}
    }

  14. #14
    Membre confirmé
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Points : 646
    Points
    646
    Par défaut
    Bonsoir

    Tout est dans le code

    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
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    public class Banque extends JFrame {
     
    	private JPanel contentPane;
    	private final Action action = new SwingAction(); // C'est en lien avec le bouton retour
    	private JTable table;
    	private JScrollPane scroll;
    	private DefaultTableModel model; 
     
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    					Banque frame4 = new Banque();
    					frame4.setVisible(true);
    							   }
    											   });
    											}
     
    	public Banque() {
     
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		contentPane.setLayout(null);
     
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 575, 700);
    		setContentPane(contentPane);
     
    		// Déclaration des images
    		ImageIcon icon= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Marron-Bureau-Carreaux.jpg");
    		ImageIcon icon2= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Blanche-Classe-Simple.jpg");
    		ImageIcon icon3= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Gris-Détendu-Carreaux.jpg");
    		ImageIcon icon4= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/T-Shirt-Rouge-Sport-Imprimé1.jpg");
    		ImageIcon icon5= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Bleu-Bureau-Simple.jpg");
    		ImageIcon icon6= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Noire-Classe-Simple.jpg");
    		ImageIcon icon7= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Noir-Sport-Simple.jpg");
    		ImageIcon icon8= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Veste-Bleu-Bureau-Simple.jpg");
    		ImageIcon icon9= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Beige-Bureau-Simple.jpg");
    		ImageIcon icon10= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Noir-Classe-Simple.jpg");
    		ImageIcon icon11= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Veste-Noir-Classe-Simple.jpg");
    		ImageIcon icon12= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Veste-Noir-Sport-Simple.jpg");
    		ImageIcon icon13= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Bleu-Détendu-Simple.jpg");
    		ImageIcon icon14= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pull-Gris-Détendu-Imprimé.jpg");
     
    		// Déclaration du tableau
    		int num=0;
     
    		Object[] [] data= new Object[][] {
    				{num=num+1, "Habit 1", icon, "Marron", "Bureau", "Carreaux"}, 				// Chemise 	Bureau	X
    				{num=num+1, "Habit 2", icon2, "Blanc", "Classe", "Simple"},					// Chemise 	Classe	X
    				{num=num+1, "Habit 3", icon3, "Marron", "Détendu", "Carreaux"}, 			// Chemise 	Détendu	
    				{num=num+1, "Habit 4", icon4, "Rouge", "Sport", "Imprimé"},					// T-Shirt 	Sport	X
    				{num=num+1, "Habit 5", icon5, "Bleu", "Bureau", "Simple"},					// Chemise 	Bureau	X
    				{num=num+1, "Habit 6", icon6, "Noir", "Classe", "Simple"},					// Chemise 	Classe	X
    				{num=num+1, "Habit 7", icon7, "Noir", "Sport", "Simple"},					// Short	Sport	X
    				{num=num+1, "Habit 8", icon8, "Bleu", "Bureau", "Simple"},					// Veste 	Bureau	X
    				{num=num+1, "Habit 9", icon9, "Beige", "Bureau", "Simple"},					// Pantalon Bureau	X
    				{num=num+1, "Habit 10", icon10, "Noir", "Classe", "Simple"},				// Pantalon	Classe	X
    				{num=num+1, "Habit 11", icon11, "Noir", "Classe", "Simple"},				// Veste	Classe	X
    				{num=num+1, "Habit 12", icon12, "Noir", "Sport", "Simple"},					// Veste	Sport	X
    				{num=num+1, "Habit 13", icon13, "Bleu", "Détendu", "Simple"},				// Pantalon	Détendu	X
    				{num=num+1, "Habit 14", icon14, "Gris", "Détendu", "Imprimé"},				// Pull		Détendu	X
    			};
    			String[] title= new String[] {"N° Ligne","Nom habit", "Image", "Couleur", "Style vestimentaire", "Motif"};
     
    			final DefaultTableModel model= new DefaultTableModel (data, title);
    			table= new JTable (model);
    			table.getColumn("Image").setCellRenderer(new IconRenderer ());
    			table.setRowHeight (100);
    			scroll= new JScrollPane(table);    
    			scroll.setBounds(15, 110, 530, 400);
    			getContentPane().add(scroll);
    			this.getContentPane().add(scroll);
    			// J'aimerais bien centrer le contenu de ma cellule, je sais qu'il faut utiliser
    			// un .setCellRenderer mais je ne se sais pas m'en servir.
    			table.getColumn("Nom habit").setCellRenderer(new CenterTableRenderer());
    			//en fait, le contenu de la cellule du JTable est un JLabel, et la classe CellRenderer
    			//permet de gérer le rendu des cellules de la JTable
    			//donc pour centrer le contenu d'une cellule, il suffit de définir un CellRenderer dans
    			//lequel du centre le contenu du JLabel et ensuite tu l'appliques sur la colonne de ton choix
     
     
    		//Création du bouton retour
    		JButton retour = new JButton("Retour");
    		retour.setAction(action);
    		retour.setFont(new Font("Arial Rounded MT Bold", Font.PLAIN, 12));
    		retour.setBounds(0, 0, 104, 34);
    		contentPane.add(retour);
     
     
    		// Fonction ajouter un vêtement
    		JButton Ajouter = new JButton("Ajouter un vêtement");
    		Ajouter.setBounds(50, 600, 200, 50);
    		Ajouter.addActionListener(new ActionListener() {
    				public void actionPerformed(ActionEvent arg0)  {
    				// Je voudrais lorsque l'utilisateur appuie sur "Ajouter un vêtement"
    				// Une nouvelle ligne s'affiche et l'utilisateur rempli les cases N° Habit, Couleur, Style Vestimentaire ... etc
    				// En cliquant sur la case et en tapant sur le clavier.	
    					Object[] rowData= new Object[6];
    					model.addRow(rowData);
    				//normalement ça ira comme ça, il suffit de double cliquer sur la cellule pour la rendre éditable
    				//tu clique ensuite sur entrée pour valider
    													    	   }
    														});
    		contentPane.add(Ajouter);
     
    		// Fonction Supprimer un vêtement
    		JButton Supprimer = new JButton("Supprimer un vêtement");
    		Supprimer.setBounds(310, 600, 200, 50);
    		Supprimer.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
     
    				model.removeRow(table.getSelectedRow());
     
    			    //arrangé. il suffit a présent de sélectionner la ligne à supprimer et de cliquer sur le bouton tout simplement
    			}
    		});
    		contentPane.add(Supprimer);
     
    		// Titre
    		JLabel lblModifierLaBanque = new JLabel("Modifier la banque d'habits");
    		lblModifierLaBanque.setFont(new Font("Monotype Corsiva", Font.PLAIN, 50));
    		lblModifierLaBanque.setBounds(35, 50, 492, 55);
    		contentPane.add(lblModifierLaBanque);
     
    		//Création du fond d'écran
    		JLabel lblNewLabel = new JLabel("");
    		lblNewLabel.setFont(new Font("Bradley Hand ITC", Font.PLAIN, 38));
    		lblNewLabel.setBackground(new Color(135, 206, 250));
    		lblNewLabel.setForeground(new Color(0, 191, 255));
    		lblNewLabel.setIcon(new ImageIcon(BrainyDressv1.class.getResource("/images/wallpaper.jpg")));
    		lblNewLabel.setBounds(0, 0, 559, 662);
    		contentPane.add(lblNewLabel);
     
     
    	}
     
    class IconRenderer extends DefaultTableCellRenderer {
    	public IconRenderer() {
    		super();
    	}
    	protected void setValue(Object value) {
    		if(value == null)
    			setText("");
    		else
    			setIcon((Icon) value);
    	}
    }
    	class SwingAction extends AbstractAction {
    		public SwingAction() {
    			putValue(NAME, "Retour");
    			putValue(SHORT_DESCRIPTION, "Some short description");
    		}
    		public void actionPerformed(ActionEvent e) {
    			MenuPrince frame2 = new MenuPrince();		// Non pas comme je le souhaite, au lieu de faire un retour en arrière 
    														// (car le menu principal et la 1ère fenetre ouverte lors du programme)
    														// Il me crée une nouvelle fênetre par dessus celle active du Menu Principal	
    			frame2.setVisible(true);
    			//tu veux avoir une seulle fenetre à la fois ?
    			//tu peux jouer sur les .setVisible(false) et .setVisible(true)
    			//selon la fenetre que tu veux faire apparaitre ou disparaitre
    		}
    		}
     
    	class CenterTableRenderer extends DefaultTableCellRenderer { 
     
    		public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { 
     
    			super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
    			this.setHorizontalAlignment(JLabel.CENTER); 
     
    			return this; 
    		} 
    	}
    }

  15. #15
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Bonsoir,
    Merci beaucoup, grâce à vous j'ai maintenant la liste des habits avec les boutons ajouter et supprimer un vêtement
    Pour l'apparition des différentes fenêtres:
    Justement c'est ce que je voulais faire jouer sur les .setVisible(false/true)
    Mais le problème est que je n'arrive pas à le faire, si je l'aisse que "frame2.setVisible(true);" ligne 143 Ben il m'accepte pas le frame2 parce qu'il est pas déclaré. Comment faire pour activer ou désactivé une fenêtre à partir d'une autre fenêtre est d'un bouton ?

    Ci-dessous, le code :
    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
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
     
    public class Banque extends JFrame {
     
    	private JPanel contentPane;
    	private final Action action = new SwingAction(); // C'est en lien avec le bouton retour
    	private JTable table;
    	private JScrollPane scroll;
    	private DefaultTableModel model; 
     
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    					Banque frame4 = new Banque();
    					frame4.setVisible(true);
    							   }
    											   });
    											}
     
    	public Banque() {
     
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		contentPane.setLayout(null);
     
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 575, 700);
    		setContentPane(contentPane);
     
    		// Déclaration des images
    		ImageIcon icon= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Marron-Bureau-Carreaux.jpg");
    		ImageIcon icon2= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Blanche-Classe-Simple.jpg");
    		ImageIcon icon3= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Gris-Détendu-Carreaux.jpg");
    		ImageIcon icon4= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/T-Shirt-Rouge-Sport-Imprimé1.jpg");
    		ImageIcon icon5= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Bleu-Bureau-Simple.jpg");
    		ImageIcon icon6= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Noire-Classe-Simple.jpg");
    		ImageIcon icon7= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Noir-Sport-Simple.jpg");
    		ImageIcon icon8= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Veste-Bleu-Bureau-Simple.jpg");
    		ImageIcon icon9= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Beige-Bureau-Simple.jpg");
    		ImageIcon icon10= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Noir-Classe-Simple.jpg");
    		ImageIcon icon11= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Veste-Noir-Classe-Simple.jpg");
    		ImageIcon icon12= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Veste-Noir-Sport-Simple.jpg");
    		ImageIcon icon13= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Bleu-Détendu-Simple.jpg");
    		ImageIcon icon14= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pull-Gris-Détendu-Imprimé.jpg");
     
    		// Déclaration du tableau
    		Object[] [] data= new Object[][] {
    				{"Habit 1", icon, "Marron", "Bureau", "Carreaux"}, 				// Chemise 	Bureau	X
    				{"Habit 2", icon2, "Blanc", "Classe", "Simple"},					// Chemise 	Classe	X
    				{"Habit 3", icon3, "Marron", "Détendu", "Carreaux"}, 			// Chemise 	Détendu	
    				{"Habit 4", icon4, "Rouge", "Sport", "Imprimé"},					// T-Shirt 	Sport	X
    				{"Habit 5", icon5, "Bleu", "Bureau", "Simple"},					// Chemise 	Bureau	X
    				{"Habit 6", icon6, "Noir", "Classe", "Simple"},					// Chemise 	Classe	X
    				{"Habit 7", icon7, "Noir", "Sport", "Simple"},					// Short	Sport	X
    				{"Habit 8", icon8, "Bleu", "Bureau", "Simple"},					// Veste 	Bureau	X
    				{"Habit 9", icon9, "Beige", "Bureau", "Simple"},					// Pantalon Bureau	X
    				{"Habit 10", icon10, "Noir", "Classe", "Simple"},				// Pantalon	Classe	X
    				{"Habit 11", icon11, "Noir", "Classe", "Simple"},				// Veste	Classe	X
    				{"Habit 12", icon12, "Noir", "Sport", "Simple"},					// Veste	Sport	X
    				{"Habit 13", icon13, "Bleu", "Détendu", "Simple"},				// Pantalon	Détendu	X
    				{"Habit 14", icon14, "Gris", "Détendu", "Imprimé"},				// Pull		Détendu	X
    			};
    			String[] title= new String[] {"Nom habit", "Image", "Couleur", "Style Vestimentaire", "Motif"};
     
    			final DefaultTableModel model= new DefaultTableModel (data, title);
    			table= new JTable (model);
    			table.getColumn("Image").setCellRenderer(new IconRenderer ());
    			table.setRowHeight (100);
    			scroll= new JScrollPane(table);    
    			scroll.setBounds(15, 110, 530, 400);
    			getContentPane().add(scroll);
    			this.getContentPane().add(scroll);
    			table.getColumn("Nom habit").setCellRenderer(new CenterTableRenderer());
    			table.getColumn("Couleur").setCellRenderer(new CenterTableRenderer());
    			table.getColumn("Style Vestimentaire").setCellRenderer(new CenterTableRenderer());
    			table.getColumn("Motif").setCellRenderer(new CenterTableRenderer());
     
    		//Création du bouton retour
    		JButton retour = new JButton("Retour");
    		retour.setAction(action);
    		retour.setFont(new Font("Arial Rounded MT Bold", Font.PLAIN, 12));
    		retour.setBounds(0, 0, 104, 34);
    		contentPane.add(retour);
     
     
    		// Fonction ajouter un vêtement
    		JButton Ajouter = new JButton("Ajouter un vêtement");
    		Ajouter.setBounds(50, 600, 200, 50);
    		Ajouter.addActionListener(new ActionListener() {
    				public void actionPerformed(ActionEvent arg0)  {
     
    					Object[] rowData= new Object[6];
    					model.addRow(rowData);
    																}
    														});
    		contentPane.add(Ajouter);
     
    		// Fonction Supprimer un vêtement
    		JButton Supprimer = new JButton("Supprimer un vêtement");
    		Supprimer.setBounds(310, 600, 200, 50);
    		Supprimer.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				model.removeRow(table.getSelectedRow());
    															}
    														   });
    		contentPane.add(Supprimer);
     
    		// Titre
    		JLabel lblModifierLaBanque = new JLabel("Modifier la banque d'habits");
    		lblModifierLaBanque.setFont(new Font("Monotype Corsiva", Font.PLAIN, 50));
    		lblModifierLaBanque.setBounds(35, 50, 492, 55);
    		contentPane.add(lblModifierLaBanque);
     
    		//Création du fond d'écran
    		JLabel lblNewLabel = new JLabel("");
    		lblNewLabel.setFont(new Font("Bradley Hand ITC", Font.PLAIN, 38));
    		lblNewLabel.setBackground(new Color(135, 206, 250));
    		lblNewLabel.setForeground(new Color(0, 191, 255));
    		lblNewLabel.setIcon(new ImageIcon(BrainyDressv1.class.getResource("/images/wallpaper.jpg")));
    		lblNewLabel.setBounds(0, 0, 559, 662);
    		contentPane.add(lblNewLabel);
     
     
    	}
     
    class IconRenderer extends DefaultTableCellRenderer {
    	public IconRenderer() {
    		super();
    	}
    	protected void setValue(Object value) {
    		if(value == null)
    			setText("");
    		else
    			setIcon((Icon) value);
    	}
    }
    	class SwingAction extends AbstractAction {
    		public SwingAction() {
    			putValue(NAME, "Retour");
    			putValue(SHORT_DESCRIPTION, "Some short description");
    								}
    		public void actionPerformed(ActionEvent e) {
    			MenuPrince frame2 = new MenuPrince();		// Justement c'est ce que je voudrais faire jouer sur les .setVisible(false/true)	
    			frame2.setVisible(true);					// Mais le problème est que je n'arrive pas à le faire.
    													}
    												}
     
    	class CenterTableRenderer extends DefaultTableCellRenderer { 
     
    		public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { 
     
    			super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
    			this.setHorizontalAlignment(JLabel.CENTER); 
     
    			return this; 
    		} 
    }	
    }

  16. #16
    Membre confirmé
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Points : 646
    Points
    646
    Par défaut
    Bonjour
    alors je te propose ce code qui je pense va t'aider à résoudre ton problème de fenetres

    classe Main (classe principale)
    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
    public class Main {
     
    	static Banque frameBanque = new Banque();
    	static MenuPrince framePrince = new MenuPrince();
     
    	public static void main(String[] args) {
     
    		EventQueue.invokeLater(new Runnable() {
     
    			public void run() {
     
    				framePrince.setVisible(true);
    			}
    		});
    	}
    }
    classe MenuPrince (le menu principal)
    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
    public class MenuPrince extends JFrame {
     
    	public MenuPrince() {
    		JLabel label= new JLabel("Le menu principal");
    		JButton btn= new JButton("Afficher base");
     
    		btn.addActionListener(new ActionListener() {
     
    			public void actionPerformed(ActionEvent arg0) {
     
    				Main.frameBanque.setVisible(true);
    				Main.framePrince.setVisible(false);
    			}
    		});
     
    		this.setSize(150, 150);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setTitle("Menu principal");
    		this.setLocationRelativeTo(null);
    		this.getContentPane().add(label, BorderLayout.NORTH);
    		this.getContentPane().add(btn, BorderLayout.SOUTH);
    	}
    }
    Bien sûr a remplacer avec ton propre code

    classe Banque
    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
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    public class Banque extends JFrame {
     
    	private JPanel contentPane;
    	private final Action action = new SwingAction(); // C'est en lien avec le bouton retour
    	private JTable table;
    	private JScrollPane scroll;
    	private DefaultTableModel model; 
     
    	public Banque() {
     
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		contentPane.setLayout(null);
     
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 575, 700);
    		setContentPane(contentPane);
     
    		// Déclaration des images
    		ImageIcon icon= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Marron-Bureau-Carreaux.jpg");
    		ImageIcon icon2= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Blanche-Classe-Simple.jpg");
    		ImageIcon icon3= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Gris-Détendu-Carreaux.jpg");
    		ImageIcon icon4= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/T-Shirt-Rouge-Sport-Imprimé1.jpg");
    		ImageIcon icon5= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Bleu-Bureau-Simple.jpg");
    		ImageIcon icon6= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Chemise-Noire-Classe-Simple.jpg");
    		ImageIcon icon7= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Noir-Sport-Simple.jpg");
    		ImageIcon icon8= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Veste-Bleu-Bureau-Simple.jpg");
    		ImageIcon icon9= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Beige-Bureau-Simple.jpg");
    		ImageIcon icon10= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Noir-Classe-Simple.jpg");
    		ImageIcon icon11= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Veste-Noir-Classe-Simple.jpg");
    		ImageIcon icon12= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Veste-Noir-Sport-Simple.jpg");
    		ImageIcon icon13= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pantalon-Bleu-Détendu-Simple.jpg");
    		ImageIcon icon14= new ImageIcon("C:/Users/Lucas/Documents/Cours/BrainyDress/src/images/Pull-Gris-Détendu-Imprimé.jpg");
     
    		// Déclaration du tableau
    		Object[] [] data= new Object[][] {
    				{"Habit 1", icon, "Marron", "Bureau", "Carreaux"}, 				// Chemise 	Bureau	X
    				{"Habit 2", icon2, "Blanc", "Classe", "Simple"},					// Chemise 	Classe	X
    				{"Habit 3", icon3, "Marron", "Détendu", "Carreaux"}, 			// Chemise 	Détendu	
    				{"Habit 4", icon4, "Rouge", "Sport", "Imprimé"},					// T-Shirt 	Sport	X
    				{"Habit 5", icon5, "Bleu", "Bureau", "Simple"},					// Chemise 	Bureau	X
    				{"Habit 6", icon6, "Noir", "Classe", "Simple"},					// Chemise 	Classe	X
    				{"Habit 7", icon7, "Noir", "Sport", "Simple"},					// Short	Sport	X
    				{"Habit 8", icon8, "Bleu", "Bureau", "Simple"},					// Veste 	Bureau	X
    				{"Habit 9", icon9, "Beige", "Bureau", "Simple"},					// Pantalon Bureau	X
    				{"Habit 10", icon10, "Noir", "Classe", "Simple"},				// Pantalon	Classe	X
    				{"Habit 11", icon11, "Noir", "Classe", "Simple"},				// Veste	Classe	X
    				{"Habit 12", icon12, "Noir", "Sport", "Simple"},					// Veste	Sport	X
    				{"Habit 13", icon13, "Bleu", "Détendu", "Simple"},				// Pantalon	Détendu	X
    				{"Habit 14", icon14, "Gris", "Détendu", "Imprimé"},				// Pull		Détendu	X
    			};
    			String[] title= new String[] {"Nom habit", "Image", "Couleur", "Style Vestimentaire", "Motif"};
     
    			final DefaultTableModel model= new DefaultTableModel (data, title);
    			table= new JTable (model);
    			table.getColumn("Image").setCellRenderer(new IconRenderer ());
    			table.setRowHeight (100);
    			scroll= new JScrollPane(table);    
    			scroll.setBounds(15, 110, 530, 400);
    			getContentPane().add(scroll);
    			this.getContentPane().add(scroll);
    			table.getColumn("Nom habit").setCellRenderer(new CenterTableRenderer());
    			table.getColumn("Couleur").setCellRenderer(new CenterTableRenderer());
    			table.getColumn("Style Vestimentaire").setCellRenderer(new CenterTableRenderer());
    			table.getColumn("Motif").setCellRenderer(new CenterTableRenderer());
     
    		//Création du bouton retour
    		JButton retour = new JButton("Retour");
    		retour.setAction(action);
    		retour.setFont(new Font("Arial Rounded MT Bold", Font.PLAIN, 12));
    		retour.setBounds(0, 0, 104, 34);
    		contentPane.add(retour);
     
     
    		// Fonction ajouter un vêtement
    		JButton Ajouter = new JButton("Ajouter un vêtement");
    		Ajouter.setBounds(50, 600, 200, 50);
    		Ajouter.addActionListener(new ActionListener() {
    				public void actionPerformed(ActionEvent arg0)  {
     
    					Object[] rowData= new Object[6];
    					model.addRow(rowData);
    																}
    														});
    		contentPane.add(Ajouter);
     
    		// Fonction Supprimer un vêtement
    		JButton Supprimer = new JButton("Supprimer un vêtement");
    		Supprimer.setBounds(310, 600, 200, 50);
    		Supprimer.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				model.removeRow(table.getSelectedRow());
    															}
    														   });
    		contentPane.add(Supprimer);
     
    		// Titre
    		JLabel lblModifierLaBanque = new JLabel("Modifier la banque d'habits");
    		lblModifierLaBanque.setFont(new Font("Monotype Corsiva", Font.PLAIN, 50));
    		lblModifierLaBanque.setBounds(35, 50, 492, 55);
    		contentPane.add(lblModifierLaBanque);
     
    		//Création du fond d'écran
    		JLabel lblNewLabel = new JLabel("");
    		lblNewLabel.setFont(new Font("Bradley Hand ITC", Font.PLAIN, 38));
    		lblNewLabel.setBackground(new Color(135, 206, 250));
    		lblNewLabel.setForeground(new Color(0, 191, 255));
    		lblNewLabel.setIcon(new ImageIcon(BrainyDressv1.class.getResource("/images/wallpaper.jpg")));
    		lblNewLabel.setBounds(0, 0, 559, 662);
    		contentPane.add(lblNewLabel);
     
     
    	}
     
    class IconRenderer extends DefaultTableCellRenderer {
    	public IconRenderer() {
    		super();
    	}
    	protected void setValue(Object value) {
    		if(value == null)
    			setText("");
    		else
    			setIcon((Icon) value);
    	}
    }
    	class SwingAction extends AbstractAction {
    		public SwingAction() {
    			putValue(NAME, "Retour");
    			putValue(SHORT_DESCRIPTION, "Some short description");
    								}
    		public void actionPerformed(ActionEvent e) {
    			Main.framePrince.setVisible(true);
    			Main.frameBanque.setVisible(false);
    													}
    												}
     
    	class CenterTableRenderer extends DefaultTableCellRenderer { 
     
    		public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { 
     
    			super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
    			this.setHorizontalAlignment(JLabel.CENTER); 
     
    			return this; 
    		} 
    }	
    }

  17. #17
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Bonsoir,
    Merci votre code m'a bien aidé car j'avais pas mal de fenêtre a gérer, en revanche il me reste un problème :
    Quand j'appuie sur le bouton la fenêtre suivante s'active et l'autre se désactive, puis quand j'appuie sur le bouton "retour", la 1ère fenêtre se réactive bien mais la fenêtre active ne veut pas disparaître. J'ai pourtant bien mis le "setVisible(false);"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    private class Retour extends AbstractAction {
    		public Retour() {
    			putValue(NAME, "Retour");
    			putValue(SHORT_DESCRIPTION, "Some short description");
    		}
    		public void actionPerformed(ActionEvent e) {
    			BrainyDressv1.frame2.setVisible(true);
    			BrainyDressv1.frame3.setVisible(false);
    		}
    	}

  18. #18
    Membre confirmé
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Points : 646
    Points
    646
    Par défaut
    Bonjour

    Sincèrement je ne vois pas ce qui cloche, cette portion de code à l'air juste.
    Vérifie s'il n'y a pas quelque part un frame3.setVisible(true) qui ferait apparaitre la fenetre sans que tu ne le désires.

  19. #19
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Bonjour, désolé de répondre si tard, je n'arrivais pas à accéder a developpez.net, pour je ne sais quelle raison.

    J'ai réussi à régler mon problème en changeant simplement
    BrainyDressv1.frame3.setVisible(false)
    par setVisible(false) tout court.

    J'ai encore plusieurs questions mais je vais y aller petit a petit ^^

    J'ai vu qu'il était possible de mettre un combobox dans une case de tableau et cette solution est, je trouve, plus pratique pour l'utilisateur, car au moins il n'a pas a écrire la couleur, le style ou le motif de l'habit mais il a juste à choisir parmi les différentes propositions. Est-ce qu'il serait possible d'appliquer des combobox à mon tableau ? Et si, oui comment ?

  20. #20
    Membre confirmé
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Points : 646
    Points
    646
    Par défaut
    Bonjour

    Oui ce que tu veux faire est possible.
    Il faut implémenter l'interface TableCellRenderer. Elle te permet de controler le reudu de ta cellule.
    Cette source te fournis le code dont tu as besoin pour réaliser ce que tu veux, tu n'a plus qu'a remplacer avec tes données

    Si tu as des questions, n'hésite pas.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [ STRUTS ] [ LOGIC:ITERATE ] tableau dans un formulaire
    Par LoulouFifi dans le forum Struts 1
    Réponses: 3
    Dernier message: 18/06/2004, 16h19
  2. Tableau dans une interface idl
    Par Polochon2001 dans le forum CORBA
    Réponses: 2
    Dernier message: 14/05/2004, 09h44
  3. [langage] Tableau dans hashage
    Par iago dans le forum Langage
    Réponses: 2
    Dernier message: 26/01/2004, 16h19
  4. [VB6]Passage d'un tableau dans une DLL écrite en delphi
    Par flash dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/09/2002, 10h15
  5. Réponses: 2
    Dernier message: 27/05/2002, 19h46

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