Interface graphique java swing interrogeant une BDD
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:
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:
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:
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 ;)