1 pièce(s) jointe(s)
Impossible d'afficher un nouveau panel suite à une sélection sur une JTable
Bonjour, pour un travail, je dois créer un programme Java capable, après avoir sélectionné une ligne d'une JTable, de la modifier suite à l'affichage d'un formulaire.
Je vous met ci-dessous le code et des images pour que ce soit compréhensible. Mon problème est que le panel du formulaire ne s'affiche pas après avoir cliqué sur le bouton modifier, alors que les données sont bien envoyées !
Code:
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
| public PanelAjoutVehicule(FenetrePrincipale fenetre, Vehicule vehi)
{
this.fenetre = fenetre;
//this.removeAll();
this.setBorder(BorderFactory.createTitledBorder("Modification d'un véhicule"));
this.setLayout(new BorderLayout());
GestionAction g = new GestionAction();
ModificationVehicule m = new ModificationVehicule();
panneauFormulaire = new JPanel();
panneauFormulaire.setLayout(new GridLayout(10,1));
panneauBoutons = new JPanel();
panneauBoutons.setLayout(new FlowLayout());
try
{
arrayInfos = controle.recupInfos(vehi);
System.out.println(arrayInfos.toString());
}
catch (SQLException ex) {
Logger.getLogger(PanelListing.class.getName()).log(Level.SEVERE, null, ex);
} catch (NamingException ex) {
Logger.getLogger(PanelListing.class.getName()).log(Level.SEVERE, null, ex);
}
labelClient = new JLabel("Client* : ");
labelClient.setHorizontalAlignment(JLabel.RIGHT);
panneauFormulaire.add(labelClient);
comboxClient = new JComboBox();
comboxClient.setSelectedItem(arrayInfos.get(0).toString());
comboxClient.setEditable(false);
panneauFormulaire.add(comboxClient);
labelMarque = new JLabel("Marque* : ");
labelMarque.setHorizontalAlignment(JLabel.RIGHT);
panneauFormulaire.add(labelMarque);
comboxMarque = new JComboBox();
comboxMarque.setSelectedItem(arrayInfos.get(1).toString());
comboxMarque.setEditable(false);
panneauFormulaire.add(comboxMarque);
labelModele = new JLabel("Modele* : ");
labelModele.setHorizontalAlignment(JLabel.RIGHT);
panneauFormulaire.add(labelModele);
comboxModele = new JComboBox();
comboxModele.setSelectedItem(arrayInfos.get(2).toString());
panneauFormulaire.add(comboxModele);
labelChassis = new JLabel("N° Chassis* : ");
labelChassis.setHorizontalAlignment(JLabel.RIGHT);
panneauFormulaire.add(labelChassis);
textChassis = new JTextField(17);
textChassis.setText(vehi.getNChassis());
textChassis.setEditable(true);
panneauFormulaire.add(textChassis);
labelCylindree = new JLabel("Cylindree* : ");
labelCylindree.setHorizontalAlignment(JLabel.RIGHT);
panneauFormulaire.add(labelCylindree);
textCylindree = new JTextField(4);
textCylindree.setText(Integer.toString(vehi.getCylindree()));
textCylindree.setEditable(true);
panneauFormulaire.add(textCylindree);
labelPlaque = new JLabel("Plaque* : ");
labelPlaque.setHorizontalAlignment(JLabel.RIGHT);
panneauFormulaire.add(labelPlaque);
textPlaque = new JTextField(7);
textPlaque.setText(vehi.getPlaque());
textPlaque.setEditable(true);
panneauFormulaire.add(textPlaque);
labelSociete = new JLabel("Societe : ");
labelSociete.setHorizontalAlignment(JLabel.RIGHT);
panneauFormulaire.add(labelSociete);
textSociete = new JTextField(20);
textSociete.setText(vehi.getSociete());
textSociete.setEditable(true);
panneauFormulaire.add(textSociete);
labelLpg = new JLabel("Lpg* : ");
labelLpg.setHorizontalAlignment(JLabel.RIGHT);
checkLpg = new JCheckBox("Oui");
if(vehi.getLpg())
{
checkLpg.setSelected(true);
}
panneauFormulaire.add(labelLpg);
panneauFormulaire.add(checkLpg);
checkLpg.addItemListener(g);
String [] contenu = {"Essence 95","Essence 98","Diesel","Electrique"};
labelCarburant = new JLabel("Carburant* : ");
labelCarburant.setHorizontalAlignment(JLabel.RIGHT);
panneauFormulaire.add(labelCarburant);
comboxCarburant = new JComboBox(contenu);
comboxCarburant.setSelectedItem(vehi.getCarburant());
comboxCarburant.setMaximumRowCount(4);
comboxCarburant.setEditable(false);
panneauFormulaire.add(comboxCarburant);
labelDateRepa = new JLabel("Date debut reparation* : ");
labelDateRepa.setHorizontalAlignment(JLabel.RIGHT);
panneauFormulaire.add(labelDateRepa);
dateDebRepa = new JSpinner();
Calendar cal = Calendar.getInstance();
Date now = cal.getTime();
dateDebRepa.setModel(new SpinnerDateModel(now, now, now, Calendar.MONTH));
dateDebRepa.setEditor(new JSpinner.DateEditor(dateDebRepa, "dd/MM/yyyy"));
panneauFormulaire.add(dateDebRepa);
boutonModifier = new JButton("Modifier");
panneauBoutons.add(boutonModifier, BorderLayout.EAST);
boutonModifier.addActionListener(m);
this.add(panneauFormulaire,BorderLayout.CENTER);
this.add(panneauBoutons,BorderLayout.SOUTH);
//this.repaint();
//this.setVisible(true);
} |
Code:
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
| public class PanelModification extends JPanel {
private FenetrePrincipale fenetre;
private JPanel panneauListing, panneauBoutons;
private ApplicationControlleur controle;
private JButton boutonModifier;
private JTable tableListing;
private AllVehicule voiture;
private GestionnaireAction gA;
private GestionnaireSelection gS;
public PanelModification(FenetrePrincipale fenetre)
{
this.fenetre = fenetre;
this.setLayout(new BorderLayout());
controle = new ApplicationControlleur();
gA = new GestionnaireAction();
gS = new GestionnaireSelection();
panneauListing = new JPanel();
panneauListing.setLayout(new BorderLayout());
panneauListing.setBorder(BorderFactory.createTitledBorder("Listing des vehicules"));
panneauBoutons = new JPanel();
panneauBoutons.setLayout(new FlowLayout());
this.add(panneauListing, BorderLayout.CENTER);
this.add(panneauBoutons, BorderLayout.SOUTH);
boutonModifier = new JButton("Modifier");
boutonModifier.addActionListener(gA);
boutonModifier.setEnabled(false);
panneauBoutons.add(boutonModifier);
chargerListeVehicule();
}
private class GestionnaireAction implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == boutonModifier)
{
int indLigne = tableListing.getSelectedRow();
Vehicule vehicule = voiture.getRow(indLigne);
if(vehicule == null)
{
JOptionPane.showMessageDialog(null, "Erreur : ligne du tableau vide.", "Erreur sélection", JOptionPane.ERROR_MESSAGE);
}
else
{
System.out.println(vehicule.toString());
PanelAjoutVehicule formulaire = new PanelAjoutVehicule(fenetre, vehicule);
}
}
}
}
private class GestionnaireSelection implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent e)
{
if(e.getValueIsAdjusting())
{
return;
}
ListSelectionModel lsm = (ListSelectionModel)e.getSource();
if(lsm.isSelectionEmpty())
{
boutonModifier.setEnabled(false);
}
else
{
boutonModifier.setEnabled(true);
}
}
}
public void chargerListeVehicule()
{
try
{
if(tableListing != null)
{
panneauListing.removeAll();
}
voiture = new AllVehicule(controle.listingVehicule());
tableListing = new JTable(voiture);
tableListing.getSelectionModel().addListSelectionListener(gS);
tableListing.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
panneauListing.add(tableListing.getTableHeader(), BorderLayout.NORTH);
panneauListing.add(tableListing);
}
catch (SQLException ex) {
Logger.getLogger(PanelListing.class.getName()).log(Level.SEVERE, null, ex);
} catch (NamingException ex) {
Logger.getLogger(PanelListing.class.getName()).log(Level.SEVERE, null, ex);
} catch (AjoutException ex) {
Logger.getLogger(PanelListing.class.getName()).log(Level.SEVERE, null, ex);
}
} |
Pièce jointe 209992
Voila, s'il vous faut autre chose, n'hésitez pas !
Cordialement, Florian.