Bonjour à tous, je suis actuellement sur un projet et mon problème concerne l'interface au niveau des boutons. Mon code me paraît correct mais pourtant je n'arrive pas à ouvrir un fenêtre déjà créee en cliquant sur un bouton de ma fenetre Menu. Je vous envoie donc le code de ma classe Menu donnant accès aux autres fenetres :

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
package IHM;
 
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.*;
 
public class Menu extends JFrame implements ActionListener {
 
    private JButton bouton1;
    private JButton bouton2;
    private JButton bouton3;
    private JButton bouton4;
    private JButton bouton5;
    private JButton bouton6;
    private JButton bouton7;
    private JButton bouton8;
 
 
 
    public Menu(){
 
        super();
        build();
    }
 
    private void build(){
        setTitle("Menu");
        setSize(320,240);
        setLocationRelativeTo(null);
        setResizable(false);
 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setContentPane(buildContentPane());
 
    }
 
 
    public static void main (String args[]){
 
        Menu menu = new Menu();
        menu.setVisible(true);
 
 
 
    }
 
    private JPanel buildContentPane(){
        JPanel panel = new JPanel();
        panel.setLayout(new FlowLayout());
        panel.setBackground(Color.white);
        JLabel label = new JLabel("Bienvenue dans l'application Palmares");
        panel.add(label);
 
 
 
        JButton bouton1 = new JButton("Requete1");
        bouton1.addActionListener(this);
        panel.add(bouton1);
 
        JButton bouton2 = new JButton("Requete2");
        bouton2.addActionListener(this);
        panel.add(bouton2);
 
        JButton bouton3 = new JButton("Requete3");
        bouton3.addActionListener(this);
        panel.add(bouton3);
 
        JButton bouton4 = new JButton("Requete4");
        bouton4.addActionListener(this);
        panel.add(bouton4);
 
        JButton bouton5 = new JButton("Requete5");
        bouton5.addActionListener(this);
        panel.add(bouton5);
 
        JButton bouton6 = new JButton("Requete6");
        bouton6.addActionListener(this);
        panel.add(bouton6);
 
        JButton bouton7 = new JButton("Requete7");
        bouton7.addActionListener(this);
        panel.add(bouton7);
 
        JButton bouton8 = new JButton("Requete8");
        bouton8.addActionListener(this);
        panel.add(bouton8);
 
        return panel;
 
        }
 
    public void actionPerformed(ActionEvent e){
 
    Object source = e.getSource();
 
        if (source == bouton1 ){
 
            Fen1 fen1 = new Fen1();
            fen1.setVisible(true);
 
        }    
        if (source == bouton2 ){
 
            Fen2 fen2 = new Fen2();
            fen2.setVisible(true);
 
        }    
        if (source == bouton3 ){
 
            Fen3 fen3 = new Fen3();
            fen3.setVisible(true);
 
        }        
        if (source == bouton4 ){
 
            Fen4 fen4 = new Fen4();
            fen4.setVisible(true);
 
        }    
        if (source == bouton5 ){
 
            Fen5 fen5 = new Fen5();
            fen5.setVisible(true);
 
        }    
        if (source == bouton6 ){
 
            Fen6 fen6 = new Fen6();
            fen6.setVisible(true);
 
        }    
        if (source == bouton7 ){
 
            Fen7 fen7 = new Fen7();
            fen7.setVisible(true);
 
        }    
        if (source == bouton8 ){
 
            Fen8 fen8 = new Fen8();
            fen8.setVisible(true);
 
        }    
    }
}
voici le code de ma première fenetre :
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
 
package IHM;
 
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
 
import javax.swing.*;
import javax.swing.text.JTextComponent;
 
public class Fen1 extends JFrame{
 
 
 
    private JTextField field1;
    private JButton ret;
 
 
 
 
 
    public Fen1(){
 
        super();
        build();
 
 
 
    }
 
    private void build(){
 
        setTitle("Requete1");
        setSize(320,240);
        setLocationRelativeTo(null);
        setResizable(false);
 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setContentPane(buildContentPane());
 
    }
 
    public static void main (String args[]){
 
        Fen1 fen1 = new Fen1();
        fen1.setVisible(true);
 
 
 
    }
 
 
    private JPanel buildContentPane(){
 
        JPanel panel = new JPanel();
        panel.setLayout(new FlowLayout());
        panel.setBackground(Color.white);
 
        JLabel label = new JLabel("Veuillez entrer les parametres de recherche");
        panel.add(label);
 
        JButton ret = new JButton("Retour Menu");
        panel.add(ret);
 
        JButton val = new JButton(new RechercheAction(this, "Valider"));
        panel.add(val);
 
 
 
        field1 = new JTextField();
        field1.setColumns(6);
        panel.add(field1);
 
        return panel;
 
    }
 
    public JTextField getField1(){
 
        return field1;
 
 
    }
 
    public JTextComponent getLabel() {
        // TODO Auto-generated method stub
        return null;
    }    
 
    public void actionPerformed(ActionEvent e){
 
    Object source = e.getSource();    
 
    if (source == ret ){
 
        Menu menu = new Menu();
        menu.setVisible(true);
    }    
 
 
    }
 
 
}
et le code qui permet d'executer la requete en fonction des parametres entrés par l'utilisateur pour la première fenetre :

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
package IHM;
 
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
import javax.swing.*;
 
public class RechercheAction extends AbstractAction {
 
    private static Fen1 fen1;
    static Connection conn;
    static Statement st;
    static String ch;
    static float resultat1;
    static float resultat2;
 
 
 
    public RechercheAction(Fen1 fen1, String texte){
    super(texte);
    this.fen1 = fen1;
    }
    public void actionPerformed(ActionEvent e) {
    //Action lors du clic sur le bouton Valider
    }
 
    static String periodeString = fen1.getField1().getText(); //On récupère la valeur dans le champ
    static double periode = Double.parseDouble(periodeString); //On convertit cette valeur en un nombre
 
 
    public static void req1 () throws SQLException
    {
 
 
        String pilote = "oracle.jdbc.OracleDriver";
        conn = null;
        String URL = "jdbc:oracle:thin:@10.121.200.244:1521:com";
        String USER = "samuel"; 
        String PASSWD = "samuel"; 
        try{
            Class.forName(pilote);
 
            conn =DriverManager.getConnection(URL,USER, PASSWD);
 
        }catch(Exception e){
            System.out.println("pas de connexion");    
        }      
 
 
        st = conn.createStatement();
        ch = "SELECT periode,sum(total_valeur_stat) AS valeur_stat FROM collecte_cisd WHERE periode LIKE "+ periode + "AND flux='3' AND comex='C' GROUP BY periode ORDER BY periode";    
        try
        {
 
 
            ResultSet rs = st.executeQuery(ch);
            while(rs.next()){
 
                resultat1 = rs.getFloat("periode");
                resultat2 = rs.getFloat("valeur_stat");
 
            }
            rs.close();
            st.close();
 
          }
          catch (SQLException e)
          {
 
          }
 
          fen1.getLabel().setText("Période = " + resultat1);
          fen1.getLabel().setText("Valeur statistique = " + resultat2);
 
    } 
 
 
 
}

Je sais que le code est assez long même s'il s'agit d'une partie de mon projet. Donc j'espère recevoir une réponse le plus rapidement possible.Merci d'avance