begin process at 2010 03 21 20:33:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Multimédia

 > 

Java2D

 > 

[Swing] : probleme avec JScrollPane sur JPanel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[Swing] : probleme avec JScrollPane sur JPanel

dimanche 22 juillet 2007 à 18:08:42 | [Swing] : probleme avec JScrollPane sur JPanel

dinfree

Bonjour à tous,

Un truc tout bête messieurs dames mais j'ai un probleme pour faire apparaitre un "scroll" sur un JPanel.

La structure de mon IHM est la suivante :

- Une "JFrame"
- Un "JPanel" panelPrincipal
- Un "JPanel" panelGauche
- Un "JPanel" panelDroit

Remarque : Je met le Jpanel "Gauche" et le Jpanel "Droit" dans le Jpanel "principal".

J'affiche bien les deux JPanel Gauche et Droit mais lorsque les composants du panel Droit sont trop nombreux(lorsque l'on clic sur "creer un nouveau formulaire", le scroll ne se met pas en place ...

Infos suplémentaires :

- Le JScrollPane marche bien sur un seul JPanel. c'est a dire quand la JFrame ne contient qu'un seul JPanel.

- Lors de mes traitements sur le JPanel panelDroit, je fait un "panelDroit.removeAll();" pour vider tous le JPanel "Droit" et ajouter de nouveaux JComponent(Voir l'actionPerformed). Je ne sais pas si cele a une incidence?


Merci d'avance pour votre aide.

MON CODE :

// Mon objet courant est la JFrame ...
// Ici seul le bouton "butt_nouveau" fonctionne. (Si des fois vous voudriez essayer l'IHM)

package vue;
import java.awt.*;
import java.awt.event.*;
import java.io.IOException;
import java.util.*;
import javax.swing.*;
import javax.swing.border.LineBorder;
import modele.*;

public class testPanel extends JFrame implements ActionListener{
 
 private static final long serialVersionUID = 0;
 
 public JPanel panelPrincipal   = null;
 public JPanel panelDroit       = null;
 public JPanel panelGauche      = null;
 public JPanel panelDescription = null;
 
 JScrollPane pr,Droit              = null;
 
 private JButton butt_nouveau       = null;
 private JButton butt_ouvrir        = null;
 private JButton butt_enregistrer   = null;
 private JButton butt_search        = null;
 private JButton butt_recherche    = null;
 private JButton butt_editer     = null;
 private JButton butt_supprimer     = null;
 private JButton butt_export        = null;
 private JButton butt_drop          = null;
 private JButton butt_quitter       = null;
 private JButton saisir_nouveau     = null;
 private JButton saisir_existant    = null;
 
 /**
  *  Le constructeur de la classe IHM permet de générer une JFrame
  *  avec un layout de type GridBagLayout
  */
 public testPanel(){
  super();
  
  build();//On initialise notre fenêtre
 }
 
 /**
  *  La méthode permet de construire l'IHM avec tous ces éléments associés
  */
 private void build(){
  
  this.setTitle("  Editeur de formulaire pour les CIP"); //On donne un titre à l'application
  this.setSize(800,600); //On donne une taille à notre fenêtre
  this.setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
  this.setResizable(true) ; //On autorise 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
  
        panelPrincipal = new JPanel();
        panelPrincipal.setPreferredSize(new Dimension(780, 580));

        panelGauche = new JPanel();
        panelGauche.setPreferredSize(new Dimension(300, 560));
        panelGauche.setBorder(new LineBorder(new Color(0,0,0)));
       
        panelDroit = new JPanel();
        panelDroit.setPreferredSize(new Dimension(450, 560));
        panelDroit.setBorder(new LineBorder(new Color(0,0,0)));
       
        JTextArea descr = new JTextArea();
        descr.setText("Affichage du composant JTextArea reussi");
       
        panelDescription = new JPanel(new GridBagLayout());
        panelDescription.setBorder(BorderFactory.createTitledBorder("Description"));
        panelDescription.setPreferredSize(new Dimension(450, 200));
        panelDescription.add(descr);
          
  /*
   *****************************************************
   *    Création des boutons du panel    *          *
   *****************************************************
   */
  
  butt_nouveau = new JButton();
  butt_nouveau.setText("Creer un formulaire");
  
  butt_nouveau.addActionListener(this);
  this.addComposantMain(panelGauche, butt_nouveau); 
  
  butt_ouvrir = new JButton();
  butt_ouvrir.setText("Ouvrir un formulaire");
  
  butt_ouvrir.addActionListener(this);
  this.addComposantMain(panelGauche, butt_ouvrir);
  
  butt_search = new JButton();
  butt_search.setText("Chercher un formulaire");
  
  butt_search.addActionListener(this);
  this.addComposantMain(panelGauche, butt_search);
  
  butt_supprimer = new JButton();
  butt_supprimer.setText("Supprimer un formulaire");
  butt_supprimer.addActionListener(this);
  this.addComposantMain(panelGauche, butt_supprimer);
  
  butt_export = new JButton();
  butt_export.setText("Exporter les formulaires vers une cle USB");
  //butt_export.setBackground( new Color(255,255,0));
  butt_export.addActionListener(this);
  this.addComposantMain(panelGauche, butt_export);
  
  butt_quitter = new JButton();
  butt_quitter.setText("Quitter l'application");
  //butt_quitter.setBackground( new Color(255,255,0));
  butt_quitter.addActionListener(this);
  this.addComposantMain(panelGauche, butt_quitter);
  
  saisir_nouveau = new JButton("Remplir formulaire");
  saisir_nouveau.addActionListener(this);
  
  saisir_existant = new JButton("Modifier formulaire");
  saisir_existant.addActionListener(this);
  
  butt_enregistrer = new JButton("Enregistrer formulaire");
  butt_enregistrer.addActionListener(this);
  
  butt_recherche = new JButton("Rechercher");
  butt_recherche.addActionListener(this);
  
  butt_editer = new JButton("Editer le formulaire");
  butt_editer.addActionListener(this);
  
  butt_drop = new JButton("Supprimer le formulaire");
  butt_drop.addActionListener(this);
  
  /******************************
   * MON PROBLEME EST CI-DESSOUS
   ******************************/
  panelPrincipal.add(panelGauche);
  panelDroit.add(panelDescription);
  Droit = new JScrollPane(panelDroit);
  panelPrincipal.add(Droit);
  
  this.add(panelPrincipal);
  
        pack();
        setVisible(true); // Affichage de l'IHM
        repaint();
 }

 public void addForm(JPanel panel, String text, JComponent component){
  
  JLabel label=new JLabel(text);
  GridBagConstraints gbc=new GridBagConstraints();
  gbc.gridwidth=1;
  gbc.insets=new Insets(3,8,3,8); // Définition des espaces entre chaques JComponent
  gbc.anchor=GridBagConstraints.LINE_START; // Le JComponent commencera au début de la ligne
  panel.add(label,gbc); // ajout du JLabel dans le JPanel
  gbc.anchor=GridBagConstraints.LINE_END; // Le JComponent finira à la fin de la ligne
  gbc.gridwidth=GridBagConstraints.REMAINDER; // On se souvient de l'emplacement du dernier élément
  gbc.fill=GridBagConstraints.HORIZONTAL; // Grille horizontal
  gbc.weightx=1.0;
  panel.add(component,gbc); // Ajout du JComponent dans le JPanel
 }

 public void actionPerformed(ActionEvent e) {
  if(e.getSource() == butt_nouveau){
   
   this.panelDroit.removeAll();
   
   
   for(int i = 0; i < 100; i++){
    addForm(panelDroit, "truc", new JTextField(25));  
   }
   
   setVisible(true);
   repaint();
  }
  if (e.getSource() == butt_quitter){
   System.exit(0);
  }
 }
 
 public static void main(String[] args) throws IOException {

  // MainPanelOk ihm = new MainPanelOk();
  // MainPanel ihm = new MainPanel();
   testPanel test = new testPanel();

 }
 
}

mardi 24 juillet 2007 à 02:04:32 | Re : [Swing] : probleme avec JScrollPane sur JPanel

GodConan

  panelPrincipal.add(panelGauche);
  panelDroit.add(panelDescription);
  Droit = new JScrollPane(panelDroit);
  panelPrincipal.add(Droit);
  
  this.add(panelPrincipal);
  
        pack();
        setVisible(true); // Affichage de l'IHM
        repaint();


cette partie de ton code c est du n import quoi ...
si rien ne fonctionne normalement c est normal...
Bien que n ayant pas bien compri l effet que tu veux rendre il est évident qu il te faut assimiler la notion de Layout avant tout... ;o) nulle part tu ne defini ton layout : setLayout( ... )
ensuite sur le JScroll aussi plusieurs chose t echape ;o) ...
il contiend une notion de viewport qu il faut donc lui donner pour qu il soit utile.... ;o) l utilisation la plus simple etant de la lui donner à la construction : new JScrollPane( tonJPanel );


ensuite un repaint derriere un pack est completement superflu .. de meme le setvisible je l aurai plutot positionné dans le Main  ;o)


GodConan ;o)


Cette discussion est classée dans : private, jpanel, jbutton, butt, panelgauche


Répondre à ce message

Sujets en rapport avec ce message

Quesque vous pensez ? [ par amine1234Z ] SalutEnfin Voila apres 6 jours de recherche comment Ajoutter un :Jtable avec layout null dans JscrollPane package testjscolpane;import ja Help... Jeu de battleship en java... [ par joedalton1979 ] Bonjour... Nous sommes vendredi soir 8hpm et je dois remettre ce travail lundi matin.. Voici ce qui devait etre fait... Un jeu de battleship, qui ce j ajouter un listener [ par roidunet ] public class conv{      private  JFrame frame = null;     private  JPanel panneau= null;     private  JPanel panneau1= null;     private  JPanel panne Appel d'une méthode avec un bouton [ par Mario329 ] Bonjour, je débute en programmation Java et j'ai fais une interface graphique avec des boutons et je voudrais appeller une méthode en utilisant les bo LAYOUT et positionnement [ par alonsyl ] bonjour,je tente actuellement de m'initier a la creation d'interfaces graphiques et je dois dire que j'ai du mal a jongler avec les LAYOUT. voici ce a ActionListener [ par amededaille ] Bonjour, Je dois créer dans le cadre de mes études une palette graphique. Le langage utilisé est JAVA. Je dois, lorsque je clique sur un bouton - qui jButton et jTabbedPane... [ par FordNYR ] j'ai une interface qui contient un JTabbedPane avec plusieurs JPanel...je veut utiliser une seul JButton qui fonctionne pour tous les la liaison entre 2 interface [ par sancha ] jé 2 interface Interface1 et Interface2 jé essayé de faire la liaison entre les 2 mais jarrivré ps (quant je clic sur le bouton1 connecter je ve voir Ajouter JButton au milieu d'un JPanel... [ par elvis36 ] Bonsoir, Voila en fait j'ai un problème très simple...J'ajoute simplement un bouton dans un panel. Dans le cas ci-dessous j'utilise un BoxLayout. mais Soucis Widget de Connexion [Urgent pour lundi] [ par babien42 ] Bonjour, Dans le cadre de ma formation je dois develloper une petit widget de connexion en gros l'utilisateur doit ecrire son Login et son MDP Puis l


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales