IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Probleme avec mon code : Comment changer de JPanel


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Probleme avec mon code : Comment changer de JPanel
    Bonjour,

    Alors voila, je suis un peu bloqué la, j'ai essayé plein de choses sans succes. Je ne suis pas très fort en graphique et en code d'ailleurs lol. Bref, je vous expose mon probleme, j'ai dans ma JFrame, trois JPanel différent. Je les appelle grâce à un menu à cinq choix dont trois reservés à mes JPanel. Je ne sais pas comment changer d'un JPanel à l'autre grâce au menu. Mon code est peut être un peu en bazar, bref conseillé moi, donnez moi votre avis, et surtout les JPanel je suis bloqué.

    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
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
     
    package assignment;
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.awt.FlowLayout;
    import java.awt.Dimension;
     
     
    public class GUI extends JFrame{
     
        private JDesktopPane desk = null;
        private JPanel container = null;
        private JPanel container2 = null;
        private JPanel container3 = null;
        private FlowLayout layout = null ;
        private JLabel label = null;
        private JTextField query = null;
        private JComboBox combo = null;
        private JTable table = null;
        private JTable table2 = null;
        private JScrollPane sp = null;
        private JButton button_ins = null;
        private JButton ok = null;
        private DBFunctions DB = new DBFunctions();
     
     
        public GUI() {
            super("Assignment Application");
            init();
            build();
        }
     
        private void init(){
            JMenuBar bar = new JMenuBar();
            JMenu m = new JMenu("Menu");
            JMenuItem connect = new JMenuItem("Connecting to database");
            JMenuItem read = new JMenuItem("Reading data");
            JMenuItem insert = new JMenuItem("Inserting data");
            JMenuItem update = new JMenuItem("Updating data");
            JMenuItem disconnect = new JMenuItem("Disconnecting from database");
            m.add(connect);
            m.add(read);
            m.add(insert);
            m.add(update);
            m.add(disconnect);
            bar.add(m);
            this.setJMenuBar(bar);
            desk = new JDesktopPane();
            this.add(desk);
            connect.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e){
                    DB.Connection();
                }
            });
            read.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e){
                    refreshPanel(getContainer());
                }
            });
            insert.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e){
                    refreshPanel(getContainer2());
                }
            });
            update.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e){
                    refreshPanel(getContainer3());
                }
            });
            disconnect.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e){
                    DB.Disconnection();
                }
            });
        }
     
        private void build(){
    	this.setTitle("Assignment application"); 
    	this.setSize(600,500); 
    	this.setLocationRelativeTo(null); 
    	this.setResizable(false) ; //On interdit la redimensionnement de la fenêtre
    	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l’application de se fermer lors du clic sur la croix	
            this.setVisible(true);
        }
     
        private JPanel getContainer(){
     
    	layout = new FlowLayout(5); 
    	layout.setAlignment(FlowLayout.CENTER);
     
    	container = new JPanel() ; // Select JPanel
    	container.setLayout(layout); 
     
    	label = new JLabel() ;
    	label.setText("Query :"); 
    	query = new JTextField("SELECT * FROM STUDENT");
            table = new JTable();
            String quer = new String("SELECT * FROM STUDENT");
            table = DB.addDataTable(quer);
            sp = new JScrollPane(table);
    	container.add(label);
            container.add(query);
            container.add(sp);
     
            return container ;
    	}
     
        private JPanel getContainer2(){
     
            container2.setLayout(layout);
            container2 = new JPanel(); // Insert JPanel
            button_ins = new JButton("Insert");
            button_ins.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e){
                    new Form(DB);
                    setPanel(getContainer2());
                }
            });
            String query = new String("SELECT * FROM STUDENT");
            table2 = DB.addDataTable(query);
            sp = new JScrollPane(table2);
            container2.add(button_ins);
            container2.add(table2);
     
            return container2;    
        }
     
        private JPanel getContainer3(){
     
            String query = new String("SELECT * FROM STUDENT");    
            container3.setLayout(layout);
            container3 = new JPanel(); // Update JPanel
            ok = new JButton("OK");
            ok.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e){
                    String str = combo.getSelectedItem().toString();
                    new Form(str);
                    refreshPanel(getContainer3());
                }
            });    
            combo = DB.addDataComboBox(combo,query);
            table2 = DB.addDataTable(query);
            sp = new JScrollPane(table2);
            container3.add(table2);
            container3.add(combo);
            container3.add(ok);
     
            return container3;    
        }
     
        private void setPanel(JPanel panel){   // ici aussi par la meme occasion
            this.setContentPane(panel);
            this.setVisible(true);
        }
     
        private void refreshPanel(JPanel panel){  // ici le probleme j'arrive à rien
    		//panel.removeAll();
    		//setPanel(panel);
                    this.setContentPane(panel);
                    this.setVisible(true);
    		panel.repaint();
    		panel.revalidate();
    	}
     
        public static void main(String[] args) throws Exception {
            new GUI(); // peut etre l'instance de ma frame n'est pas correct aussi
        } 
    }
    Un peu long, désolé les admins.
    Voila je vous remercie d'avance pour votre aide précieuse.

    ++

  2. #2
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Il faut utiliser un CardLayout pour ça.
    Tu pourras y stoquer tes 3 JPanels et en rendre 1 seul visible à la fois.
    Cherche dans cette direction.

Discussions similaires

  1. [Débutant] Probleme avec mon code ou mon ftp?
    Par bananekiller dans le forum VB.NET
    Réponses: 0
    Dernier message: 12/06/2012, 21h12
  2. [AJAX] Code ajax
    Par christa_k dans le forum AJAX
    Réponses: 2
    Dernier message: 23/09/2009, 09h32
  3. regler un probleme avec mon code
    Par kachaloarmin dans le forum C++Builder
    Réponses: 2
    Dernier message: 11/11/2007, 13h19
  4. [Tableaux] probleme avec mon code pour faire un parseur !
    Par Joe-La-Boule dans le forum Langage
    Réponses: 10
    Dernier message: 11/10/2006, 15h35
  5. Problème avec mon code et avec gcc
    Par JavaAcro dans le forum Linux
    Réponses: 3
    Dernier message: 13/06/2006, 22h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo