Question sur un probleme d'excecution
Résolu
Rhaya
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
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 :
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
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 + "]";
}
}
Tu as une exception au démarrage de l'application :
Le problème vient de cette ligne :
Tu as déclaré
Tu trouveras ensuite d'autres erreurs sur
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).
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!
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]); }