Bonjour,
J'ai crée une jframe "Projet" contenant un combobox, lorsque je l'execute le combobox est bien remplie par contre lorsque je passe d'une jframe " Acceuil" (contenant un button qui m'affiche fenêtre projet) le combobox est vide.
Bonjour,
J'ai crée une jframe "Projet" contenant un combobox, lorsque je l'execute le combobox est bien remplie par contre lorsque je passe d'une jframe " Acceuil" (contenant un button qui m'affiche fenêtre projet) le combobox est vide.
Salut,
Sans code, pas de réponse (ou plutôt des milliards possibles, donc pas possible de les mêmes toutes, ni d'en choisir une qui pourrait t'être hypothétiquement utile).
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Qu'est ce que je dois ajouter, tous ce que j'ai fait c'est
Nom_de_maclase n = new Nom_de_maclasse();
Nom_de_maclasse.setVisible(true);
Normalement, ça devrait plutôt :
Mais ça ne me dit pas comment tu crées et remplis la combo. Et quelles différences y a t-il entre la façon d'afficher directement la fenêtre (ce que tu appelles exécuter la frame "Projet") et celle qui passe par le bouton de l'autre frame.
Code : Sélectionner tout - Visualiser dans une fenêtre à part n.setVisible(true);
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
je veux créer un logiciel de gestion des clients et des projets donc j'ai créé plusieurs frames et des jbotton de chaque une pour pouvoir passer d'une jframe à autre
et comme j'ai dis pour le combobox il est rempli uniquement lorsque j'execute directement la classe sans passer par l'autre classe
ps: j'ai fait n.setVisible(true); je me suis trompée dans l'écriture
Tu peux me dire tout ce que tu veux, me parler du fonctionnel, tout ça, sans code, je ne peux pas te donner de solution. Tu n'es pas obligé de me mettre toute l'application : un ECM est suffisant avec les éléments qui entrent en jeu (JFrame, JButton et JComBox).
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
ça c'est dans jframe acceuil dans la quelle j'ai créé un objet de la classe 'Nouveau Client 'contenant un combobox
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 JPanel panel = new JPanel(); contentPane.add(panel, BorderLayout.CENTER); panel.setLayout(null); panel.setBackground(Color.WHITE); JButton btnClient = new JButton("Nouveau client"); btnClient.setForeground(new Color(255, 255, 255)); btnClient.setFont(new Font("Tahoma", Font.BOLD, 15)); btnClient.setBackground(new Color(235,162,56)); btnClient.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { AJOUTER a= new AJOUTER(); a.setVisible(true); } });
celui de la classe Nouveau Client
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 ..... static JComboBox<String> comboBox_1= new JComboBox<String>(); static JComboBox<String> comboBox = new JComboBox<String> (); private JTextField datenaissance; private JTextField adresse; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { AJOUTER frame = new AJOUTER(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } Connection connection ; Statement statement; try { try { Class.forName("org.sqlite.JDBC"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } connection = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\tosiba\\eclipse-workspace\\training1\\src\\BDD.db"); statement= connection.createStatement(); ResultSet rs= statement.executeQuery("SELECT Nom_du_projet, Type_de_logements FROM Projet "); while(rs.next()) { comboBox.addItem(rs.getString("Nom_du_projet")); comboBox_1.addItem(rs.getString("Type_de_logements")); ............ public void actionPerformed(ActionEvent arg0) { Connection connection; PreparedStatement statement ; connection = null; try { try { Class.forName("org.sqlite.JDBC"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } connection = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\tosiba\\eclipse-workspace\\training1\\src\\BDD.db"); statement = connection.prepareStatement("INSERT INTO Client ( Nom , Prenom, Versement, Num , Nom_du_projet, idbloc , Date_de_versement ,Date_de_naissance , Adresse , Type_de_logement, N°_du_logement , Prix_du_logement) VALUES(?,?,?,?,?,?,?,?,?,?,?,?)"); String v = comboBox_1.getSelectedItem().toString(); statement.setString(1, nom.getText()); statement.setString(2, prenom.getText()); statement.setString(3, versement.getText()); statement.setString(4, num.getText()); statement.setString(5,comboBox.getSelectedItem().toString()); statement.setString(6,idbloc.getText()); .........
Le problème vient probablement du fait que la variable comboBox_1 est static. Il vaut mieux éviter qu'un composant Swing soit static. Je ne peux pas connaître le fonctionnement global de ton programme puisque tu me montres que des extraits de code, mais si la combo est placée dans deux instances de Container dans la même session d'exécution, au final, elle ne pourra être que dans le dernier dans laquelle elle a été placée. En plus, ça favorise les possibilités de conflits, en particulier entre l'Event Dispatch Thread et d'autres threads.
De manière générale, il faut éviter de faire des variables ou des méthodes statiques (seule la méthode main devrait l'être, instancier une classe et appeler ensuite que des méthodes non statiques (sauf pour des méthodes utilitaires éventuellement, dont le seul contexte est formé par ses paramètres, et pour des static final pour des constantes de fonctionnement).
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
lorsque j'enléve le mot static j'ai une erreur ici
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 public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { Projet frame = new Projet(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } Connection connection ; java.sql.Statement statement; try { try { Class.forName("org.sqlite.JDBC"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } connection = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\tosiba\\eclipse-workspace\\training1\\src\\BDD.db"); statement= connection.createStatement(); ResultSet rs= statement.executeQuery("SELECT Nom_du_projet FROM Projet "); while(rs.next()) { comboBox.addItem(rs.getString("Nom_du_projet")); // erreur est ici (Cannot make a static reference to the non-static field comboBox) }
C'est normal, puisque tu ne peux pas accéder directement à un contexte non static depuis un contexte static. Il ne suffit pas d'enlever le statique, il faut revoir l'architecture de ton application.
Par exemple, tu peux faire une classe avec une méthode static void fillProjectCombo(JComboBox<String> comboBox) qui fait la requête (il suffit de copier le code que tu as fait dedans), que tu appelles là où tu crées la combo, ou tu fais une méthode qui retourne un tableau, ou une liste, ou autre, qui te permet de construire ta combo, ou ton modèle de combo, comme ça la méthode ne dépend pas de notion liée à l'ui, mais uniquement de notions liées à la database.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Merci beaucoup , j'ai créé une classe et ça marche
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager