Question sur un probleme d'excecution

Résolu/Fermé
Rhaya - 2 févr. 2014 à 21:24
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 3 févr. 2014 à 00:02
Bonjour,

je suis débutante sur la programation au language JAVA et je me suis bloquer à la methode ajouter et je n'arrive plus à savoire ou peux être mon erreur ,j'ai utiliser les vecteurs dans une methode remplir et j'ai appeler cette dernière sur ma methode Ajouter et s'insére à rien , si vous avez une idée ou peux être mon erreur je serais ravis et merci d'avance.
voici mon code :

package gui;

import java.awt.EventQueue;

public class GestionClient extends JFrame {

/**
*
*/
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JTextField textField;
private JTextField textField_1;
private JTextField textField_2;
private JTextField textField_3;
private JTable table;

/**
* Launch the application.
*/
int index;

private JComboBox<String> ComboBox;
public JComboBox<String> getComboBox(){
return ComboBox;
}
public void setComboBox(JComboBox<String>ComboBox){
this.ComboBox=ComboBox;
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
GestionClient frame = new GestionClient();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
Client c=new Client();
public GestionClient() {
addWindowListener(new WindowAdapter() {
@Override
public void windowOpened(WindowEvent arg0) {
init();
}
public void init(){


Client.cl.add(new Client(1,"rhaya","wijdane","sidi maarouf","Etreprise"));
Client.cl.add(new Client(2,"ss","ss","ss ","Particulier"));
Client.cl.add(new Client(3,"gg","gg","gg ","Particulier"));
Client.cl.add(new Client(4,"dd","dd","dd ","Entreprise"));
Remplir();
Afficher();
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 492, 357);
contentPane = new JPanel();
contentPane.setBackground(Color.PINK);
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

JLabel lblNewLabel = new JLabel("NoClient:");
lblNewLabel.setBounds(5, 5, 258, 14);
contentPane.add(lblNewLabel);

JLabel lblNewLabel_1 = new JLabel("NomClient:\r\n");
lblNewLabel_1.setBounds(5, 30, 67, 14);
contentPane.add(lblNewLabel_1);

JLabel lblNewLabel_2 = new JLabel("PrenomClient:");
lblNewLabel_2.setBounds(5, 55, 78, 14);
contentPane.add(lblNewLabel_2);

JLabel lblNewLabel_3 = new JLabel("Adresse:");
lblNewLabel_3.setBounds(5, 80, 46, 14);
contentPane.add(lblNewLabel_3);

JLabel lblNewLabel_4 = new JLabel("Type:");
lblNewLabel_4.setBounds(5, 105, 46, 14);
contentPane.add(lblNewLabel_4);

textField = new JTextField();
textField.setBounds(81, 2, 132, 20);
contentPane.add(textField);
textField.setColumns(10);

textField_1 = new JTextField();
textField_1.setColumns(10);
textField_1.setBounds(81, 27, 132, 20);
contentPane.add(textField_1);

textField_2 = new JTextField();
textField_2.setColumns(10);
textField_2.setBounds(81, 52, 132, 20);
contentPane.add(textField_2);

textField_3 = new JTextField();
textField_3.setColumns(10);
textField_3.setBounds(81, 80, 132, 20);
contentPane.add(textField_3);

JLabel lblGestionDesClients = new JLabel("Gestion des Clients");
lblGestionDesClients.setFont(new Font("Arial Black", Font.PLAIN, 13));
lblGestionDesClients.setBackground(Color.BLACK);
lblGestionDesClients.setBounds(243, 3, 143, 14);
contentPane.add(lblGestionDesClients);

JComboBox<Object> comboBox = new JComboBox<Object>();
comboBox.setFont(new Font("Tahoma", Font.PLAIN, 11));
comboBox.setModel(new DefaultComboBoxModel<Object>(new String[] {"Entreprise", "Particulier"}));
comboBox.setBounds(81, 102, 132, 20);
contentPane.add(comboBox);

JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(22, 149, 410, 126);
contentPane.add(scrollPane);

table = new JTable();
table.setModel(new DefaultTableModel(
new Object[][] {
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
},
new String[] {
"NoClient", "NomClient", "PrenomClient", "Adresse", "Type"
}
));
scrollPane.setViewportView(table);

JButton btnAjouter = new JButton("Ajouter");
btnAjouter.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Ajouter();
}
});
btnAjouter.setBounds(348, 120, 84, 23);
contentPane.add(btnAjouter);

JButton btnModifier = new JButton("Nouveau");
btnModifier.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Nouveau();
}
});
btnModifier.setBounds(261, 120, 84, 23);
contentPane.add(btnModifier);

JButton btnModifier_1 = new JButton("Modifier");
btnModifier_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Modifier();
}
});
btnModifier_1.setBounds(348, 286, 84, 23);
contentPane.add(btnModifier_1);

JButton btnSupprimer = new JButton("Suprimer");
btnSupprimer.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Supprimer();
}
});
btnSupprimer.setBounds(243, 286, 84, 23);
contentPane.add(btnSupprimer);

JButton btnAfficher = new JButton("Afficher");
btnAfficher.setBounds(137, 286, 84, 23);
contentPane.add(btnAfficher);

JButton button = new JButton("< < ");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
premier();
}
});
button.setBounds(225, 76, 61, 23);
contentPane.add(button);

JButton button_1 = new JButton("< ");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
precedent();
}
});
button_1.setBounds(296, 76, 46, 23);
contentPane.add(button_1);

JButton button_2 = new JButton(">");
button_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
suivant();
}
});
button_2.setBounds(348, 76, 46, 23);
contentPane.add(button_2);

JButton button_3 = new JButton(">>");
button_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dernier();
}
});
button_3.setBounds(399, 76, 61, 23);
contentPane.add(button_3);

JButton btnRechercher = new JButton("Rechercher");
btnRechercher.setBounds(32, 286, 84, 23);
contentPane.add(btnRechercher);
}

public void Afficher(){
Client c = Client.cl.get(index);
textField.setText((c.getNoClient()+""));
textField_1 .setText(c.getNomClient());
textField_2.setText(c.getPrenomClient());
textField_3.setText(c.getAdresse());
if(c.getType().equals("Entreprise")){
ComboBox.setSelectedIndex(0);
//ComboBox.setSelectedItem(c.getType());
}else{

ComboBox.setSelectedIndex(1);


}
}
public void Remplir(){
Vector<String> v = new Vector<String>();
v.add("noClient");
v.add("nomClient");
v.add("prenomClient");
v.add("adresse");
v.add("type");

Vector<String> vl =new Vector<String>();
for(Client c:Client.cl){
Vector<String> vn =new Vector<String>();
vn.add(c.getNoClient()+"");
vn.add(c.getNomClient());
vn.add(c.getPrenomClient());
vn.add(c.getAdresse());
vn.add(c.getType());
vl.addAll(vn);
}

DefaultTableModel model = new DefaultTableModel(vl,v);
table.setModel(model);

}
public void Ajouter(){

Client c = new Client (Integer.parseInt(textField.getText()),textField_1.getText(),textField_2.getText(),textField_3.getText(),ComboBox.getSelectedItem().toString());
int rep = JOptionPane.showConfirmDialog(null, "", "conf", JOptionPane.YES_NO_CANCEL_OPTION);
if(rep==JOptionPane.YES_NO_CANCEL_OPTION){
Client.cl.add(c);
Remplir();

}else{
JOptionPane.showMessageDialog(null, "le Client est bien ajouter");
}

}

public void Nouveau(){
textField.setText(null);
textField_1.setText(null);
textField_2.setText(null);
textField_3.setText(null);
ComboBox.setSelectedIndex(0);
}
public void suivant(){
index++;
try{
Afficher();
}catch(IndexOutOfBoundsException e){
index--;
JOptionPane.showMessageDialog(null, "aucun Client suiver !");
}
}
public void precedent(){
index--;
try{
Afficher();
}catch(IndexOutOfBoundsException e){
index++;
JOptionPane.showMessageDialog(null, " aucun Client preceder !");
}
}
public void premier(){
index=0;
try{
Afficher();
}catch(IndexOutOfBoundsException e){
index=Client.cl.size()-1;
JOptionPane.showMessageDialog(null, "c'est le premier Client !");
}
}
public void dernier (){
index=Client.cl.size()-1;
try{
Afficher();
}catch(IndexOutOfBoundsException e){
index=0;
JOptionPane.showMessageDialog(null, "c'est le dernier Client !");
}

}
public void Supprimer(){
for(int i=0;i<Client.cl.size();i++){
if(Integer.parseInt(textField.getText()) == Client.cl.get(i).getNoClient()){
int rep = JOptionPane.showConfirmDialog(null, "voulez-vous vraiment supprimer ce Client ?", "Confirmation", JOptionPane.YES_NO_CANCEL_OPTION);
if(rep==JOptionPane.YES_OPTION){
Client.cl.remove(i);
JOptionPane.showMessageDialog(null, "le Client est bien supprimer !");
Remplir();
}else{
JOptionPane.showMessageDialog(null, "l'operation est echoer !");
}

}else{
JOptionPane.showMessageDialog(null, "le numero de Client non valide");
}
}
}
public void Modifier(){

DefaultTableModel d=(DefaultTableModel)table.getModel();
d.setValueAt(textField.getText(), table.getSelectedRow(),0);
d.setValueAt(textField_1.getText(), table.getSelectedRow(),1);
d.setValueAt(textField_2.getText(), table.getSelectedRow(),2);
d.setValueAt(textField_3.getText(), table.getSelectedRow(),3);
d.setValueAt(ComboBox.getSelectedItem(), table.getSelectedRow(),4);
}

}

4 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
2 févr. 2014 à 21:35
Est-ce que tu pourrais mettre ta classe Client aussi, pour pouvoir tester.
0
voila ma class Client :

package gui;

import java.util.ArrayList;

public class Client {
private int noClient;
private String nomClient;
private String prenomClient;
private String adresse;
private String type;
public static ArrayList<Client> cl =new ArrayList<>();
public int getNoClient() {
return noClient;
}
public void setNoClient(int noClient) {
this.noClient = noClient;
}
public String getNomClient() {
return nomClient;
}
public void setNomClient(String nomClient) {
this.nomClient = nomClient;
}
public String getPrenomClient() {
return prenomClient;
}
public void setPrenomClient(String prenomClient) {
this.prenomClient = prenomClient;
}
public String getAdresse() {
return adresse;
}
public void setAdresse(String adresse) {
this.adresse = adresse;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public Client() {
super();
}
public Client(int noClient, String nomClient, String prenomClient,
String adresse, String type) {
super();
this.noClient = noClient;
this.nomClient = nomClient;
this.prenomClient = prenomClient;
this.adresse = adresse;
this.type = type;
}
@Override
public String toString() {
return "Client [noClient=" + noClient + ", nomClient=" + nomClient
+ ", prenomClient=" + prenomClient + ", adresse=" + adresse
+ ", type=" + type + "]";
}

}
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
2 févr. 2014 à 22:56
Tu as une exception au démarrage de l'application :

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException:
java.lang.String cannot be cast to java.util.Vector

Le problème vient de cette ligne :
DefaultTableModel model = new DefaultTableModel(vl,v);

Tu as déclaré
Vector<String> vl =new Vector<String>();
en faisant ensuite des
vl.addAll(vn);
mais il faudrait plutôt avoir
Vector<Vector<String>> vl = new Vector<Vector<String>>();
et
vl.add(vn);
ce qui te permettra de remplir ton tableau.

Tu trouveras ensuite d'autres erreurs sur
ComboBox.setSelectedIndex(1);
d'une part parce que ComboBoc n'est pas initialisé (NullPointerException), d'autre part parce que si le ComboBox est vide, l'élément 1 n'existera pas (IllegalArgumentException).
0
merci KX ça marche bien pour les vecteurs mais pour le comboBox est-ce-que je dois initialiser une methode pour le remplissage de comboBox ?
si c'est comme ça voila ce que j'ai fait!

 public void JComboBoxRemplir(){
		ComboBox.removeAllItems();
		String[] elements={"Entreprise","Particulier"};
		for(int i=0;i<elements.length;i++){
			ComboBox.addItem(elements[i]);
		}
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
3 févr. 2014 à 00:02
Tu peux faire directement :
ComboBox = new JComboBox(elements);
0