Java | JList avec JScrollBar

Résolu
Xineroks Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   -  
Xineroks Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un soucis sur le fait de pouvoir insérer une ScrollBar dans une Jlist

voici le code :

		final DefaultListModel dlmTest = new DefaultListModel();
		JList mesVins = new JList(dlmTest);	
		
		JScrollPane monScroll;

                // INSERTION DE DONNEE DANS LA LISTE

                mesVins.setSize(200, 260);
		mesVins.setLocation(5, 40);
		mesVins.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
		mesVins.setLayoutOrientation(JList.HORIZONTAL_WRAP);
		mesVins.setVisibleRowCount(14);

		monScroll = new JScrollPane(mesVins, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);.

                cePanel.add(mesVins);
                cePanel.add(monScroll);


Normalement c'est censé fonctionner mais non...
J'ai aussi lu que l'on devait ne pas ajouter la liste si l'on ajoutait la scrollbar.

J'ai donc aussi testé mais ça n'a pas marché.

Je m'en remet donc à vous pour votre aide.

Merci d'avance,

Xineroks
A voir également:

7 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Si tu ajoutes monScroll alors qu'il contient mesVins, tu n'as pas à rajouter monVin sinon il sera deux fois dans la fenêtre !
Enlèves l'instruction cePanel.add(mesVins); je pense que ce sera un bon début...
0
Xineroks Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   3
 
Oui voilà c'est exactement ce que je disais mais du coup c'est bizarre la JList n'apparait pas :/
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Je pense que ton setSelection revient au même qu'un add... Essayes ceci (à vérifier) :

mesVins.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
mesVins.setLayoutOrientation(JList.HORIZONTAL_WRAP);
mesVins.setVisibleRowCount(14);

monScroll = new JScrollPane(mesVins, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
monScroll.setSize(200, 260);
monScroll.setLocation(5, 40);

cePanel.add(monScroll);
0
Xineroks Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   3
 
J'ai toujours la JList qui ne s'affiche pas,
et j'ai le Scroll qui ne vient pas non plus :/


je sais pas si ça vient du fait aussi du fait que j'utilise un JListModel pour inserer mes données via une base de données

Vraiment compliqué Java
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Ce n'est pas le Java en soit qui est compliqué, mais le Swing il aurait fallu bien le maîtriser avant de s'attaquer à un gros truc comme ça... Je vais reprendre ton code d'hier pour faire quelques tests.
0
Xineroks Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   3
 
Justement c'est en appliquant qu'on apprend car sinon c'est facile c'est sur. C'est pour ça que la en passant sur un truc plus compliqué j'ai un peu de mal.
Surtout sur le fait qu'un composant en ait plein lui même.

En tout cas merci pour ton attention
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Le truc vraiment moche qui saute aux yeux quand on regarde ton code, c'est que tu n'utilises pas du tout de Layout, et ça se ressent énormément sur l'esthétique de l'application, sans parler de tous les setSize, et setLocation que tu es obligé de faire à chaque fois et qui vont planter dès que tu testeras l'application sur un système d'exploitation avec des polices systèmes qui n'auront pas la même taille et qui vont tout décaler...

Perso, je vois la JList et le ScrollBar en reprenant ton code précédent, mais il a du changer depuis, donc peut-être effectivement un problème avec ton Model... Voici un exemple simple pour voir où tu t'es planté :

public static void main(String...args)
{
	DefaultListModel<Integer> model = new DefaultListModel<Integer>();
	for (int i=0; i<100; i++)
		model.addElement(i);
	
	JList<Integer> list = new JList<Integer>(model);
	
	JScrollPane scroll = new JScrollPane(list);
	
	JFrame frame = new JFrame();
	frame.setSize(200,200);
	frame.add(scroll);
	frame.setVisible(true);
}
0
Xineroks Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   3
 
Rebonsoir, ou certainement bonjour.
J'ai travaillé sur le code et j'obtiens : https://imgur.com/a8fCw donc ça correspond sauf sur un élément, c'est la JList que je n'arrive pas à placer sur toute la place libre comme l'autre screenShot.

Et également mon code. J'ai utilisé 2 code pour avoir la même chose, j'aimerais un avis pour voir lequel est le mieux selon toi :

le premier : https://pastebin.com/RE7gs9nV

le deuxième : https://pastebin.com/xig7KXwb

Voili voilu, je crois avoir compris comment ça fonctionne. Mais j'ai des précisions manquante sur le web pour celà.

Si ça se trouve je me goure complétement dans la manière de faire, car je n'ai pas fais le découpage des 3 zones, mais je savais pas comment faire, alors au final ça donne ça, je ne suis pas trop déçu mais j'ai ce soucis quoi ^^.

Cordialement,

Xineroks
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
En combinant toutes les techniques que j'ai pu évoquer hier soir, voici ce que l'on pourrait obtenir (ce n'est bien sûr ici qu'une partie de ton code)

import java.awt.GridLayout;
import java.util.HashMap;

import javax.swing.DefaultListModel;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

public class Test extends JFrame
{
    private static final long serialVersionUID = 1;
    
    HashMap<String,JTextField> text = new HashMap<String,JTextField>();
            
    void add(JPanel grid, String...str)
    {
        for (String s : str)
        {
            JTextField txt = new JTextField();
            text.put(s,txt);
            grid.add(new JLabel(s));
            grid.add(txt);
        }
    }
        
    public Test()
    {
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(300,350);
        
        DefaultListModel<Integer> model = new DefaultListModel<Integer>();
        for (int i=0; i<=100; i++)
            model.addElement(i);
            
        JList<Integer> list = new JList<Integer>(model);
        JScrollPane scroll = new JScrollPane(list);
        
        JButton update = new JButton("Mettre à jour");
        JButton delete = new JButton("Supprimer");
        
        JPanel panel = new JPanel();        
        GroupLayout layout = new GroupLayout(panel);
        panel.setLayout(layout);
        
        layout.setAutoCreateGaps(true);
        layout.setAutoCreateContainerGaps(true);
        
        JPanel grid = new JPanel();
        grid.setLayout(new GridLayout(10,2));
        
        add(grid,"Bouteille","Contenance","Prix","Année","Quantité","Catégorie","Région","Pays","Cépage","Appellation");
        
        layout.setHorizontalGroup
        (
            layout.createSequentialGroup()
                .addComponent(scroll)
                .addGroup
                (
                    layout.createParallelGroup()
                        .addComponent(grid)
                        .addGroup
                        (
                            layout.createSequentialGroup()
                                .addComponent(update)
                                .addComponent(delete)
                        )
                )
        );
        
        layout.setVerticalGroup
        (
            layout.createParallelGroup()
                .addComponent(scroll)
                .addGroup
                (
                    layout.createSequentialGroup()                        
                        .addComponent(grid)            
                        .addGroup
                        (
                            layout.createParallelGroup()
                                .addComponent(update)
                                .addComponent(delete)
                        )
                )
        );
        
        add(panel);
        
        setVisible(true);
    }

    public static void main(String...args)
    {
        new Test();
    }
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Xineroks Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   3
 
Wow un Grand MERCI,
C'est une technique de programmation que je ne connaissais pas du tout !
C'est vrai que c'est vachement plus simple, beaucoup plus beau.

Je vais coder l'interface du coup, je te passe le .jar quand j'ai terminé ^^.

J'ai encore des choses à voir du coup avec les parallelGroup et horizontalGroup.
Histoire que je puisse manier comme je le veux les composants
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Oui, là j'ai pas du tout utiliser les alignment et les gap, de même pour le GridLayout, on peut mettre des options pour gérer les interlignes par exemple, là j'ai fait au plus simple...
0
Xineroks Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   3
 
Par exemple là j'ai un soucis du coup, j'ai supprimer les bouton "Mettre à jour et Supprimer" car j'ai un panel similaire.
Et donc j'ai 2 parties : la JList et le Grid.
Donc forcément le panel est partagé en 2 mais la JList prend beaucoup trop de place, 1 tiers du panel suffirait, et c'est ce genre de choses que je ne sais pas gérer et qui me repousse vis à vis des Layout.

Je suis sur que c'est tout bête, que j'ai du zapper une méthode

Edit : Non c'est tout bête oui, juste grid(10,2, unevaleur, uneautrevaleur)
Mais du coup ici, j'ai ce qu'il faut pour la JList mais les TextField sont petits :/
https://imgur.com/5gxtO
0
Xineroks Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   3
 
Je pense que je vais remplacer le GridLayout par le GridBagLayout. Ca à l'air un peu compliqué mais en tout cas j'avance pas à pas et je comprend de plus en plus Swing

Dommage que le BorderLayout ne prenne qu'un composant par zone :/
0
Xineroks Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   3
 
Bon bah en fait j'ai opté pour un GroupLayout, 2 grid, l'un pour les labels, l'autre pour les TF.
Ca corrige les tailles des TF, mais la JList est toujours trop grosse ... alors que j'avais trouvé la solution :/ je me demande même si je devrais mettre mes 2 grid dans un nouveau grid...
Bref je m'embrouille vraiment là
Je résous un problème mais j'en ai toujours un autre qui survient ...
0
Xineroks Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   3
 
Bon étant donné que j'ai vraiment du mal je vais tricher un peu je vais garder le code que tu m'as donné en changeant un truc : gridLayout(5,2,50,50);

et passer sur cet affichage : https://imgur.com/OtJXt

Et pour changement de Tab, je pense faire un resize pour gerer ça, et sans doute mettre le Sizable(false) car sinon c'est vraiment laid
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Même si ça fonctionne (5,2) c'est un peu bizarre vu que tu as 20 éléments à mettre dedans, (5,4) serait plus correct, et (50,50) je trouve ça excessif, surtout en vertical, un (30,10) serait plus raisonnable je pense...

Par contre pour ton changement de Tab, je n'ai pas compris ton problème...
Remarque: avant de fixer le sizable(false) assure toi que la taille des fenêtres soit suffisamment large pour s'adapter à la plupart des LnF, en particulier sous Linux où les polices sont plus grosses :

for (LookAndFeelInfo lnf : UIManager.getInstalledLookAndFeels())
{
	try 
	{
		UIManager.setLookAndFeel(lnf.getClassName());
		new Test().setTitle(lnf.getName());
	} 
	catch (Exception e) 
	{
		System.err.println(e);
	}
}
0
Xineroks Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   3
 
Bon bah interface résolue, code un peu plus lourd mais beaucoup plus simple pour moi de coder avec notamment pour les événements. Je suis donc passé à fond sur les GroupLayout. Beaucoup de travail.


import java.awt.*; 
import java.awt.event.*; 

import javax.swing.*; 



public class Fenetre extends JFrame { 
  
 private static final long serialVersionUID = 1L; 

    JTabbedPane monTabbedPane = new JTabbedPane(); 
    JPanel panGest = new JPanel(); 
    JPanel panSupp = new JPanel(); 
    JPanel panAdd = new JPanel(); 

 Color colorBack = new Color(133,22,54); 
 Color colorPan = new Color(246,194,156); 
  
 public Fenetre(){ 
  
   
  Dimension monecran = Toolkit.getDefaultToolkit().getScreenSize(); 
  int x = (monecran.width/2); 
  int y = (monecran.height/2); 
       
  this.setTitle("Ma Cave à Vin"); 
  this.setSize(800,500); 
  this.setLocation((x-(this.getWidth()/2)),(y-(this.getHeight()/2))); 
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        this.setBackground(colorBack); 
                
        
        gestionCave(); 
        ajoutVins(); 
        suppModVins(); 
         
        this.setContentPane(monTabbedPane); 
        this.setVisible(true);         
 } 
  

         


 public void gestionCave(){ 
  JLabel lblGestBout = new JLabel("Bouteille"); 
  JLabel lblGestCont = new JLabel("Contenance"); 
  JLabel lblGestPrix = new JLabel("Prix"); 
  JLabel lblGestAnnee = new JLabel("Année"); 
  JLabel lblGestQte = new JLabel("Quantité"); 
  JLabel lblGestCat = new JLabel("Catégorie"); 
  JLabel lblGestReg = new JLabel("Région"); 
  JLabel lblGestPays = new JLabel("Pays"); 
  JLabel lblGestCep = new JLabel("Cépage"); 
  JLabel lblGestApp = new JLabel("Appellation"); 

  JTextField tfGestBout = new JTextField(); 
  JTextField tfGestCont = new JTextField(); 
  JTextField tfGestPrix = new JTextField(); 
  JTextField tfGestAnnee = new JTextField(); 
  JTextField tfGestQte = new JTextField(); 
  JTextField tfGestCat = new JTextField(); 
  JTextField tfGestReg = new JTextField(); 
  JTextField tfGestPays = new JTextField(); 
  JTextField tfGestCep = new JTextField(); 
  JTextField tfGestApp = new JTextField(); 

  JList mesVinsGest = new JList(); 
  JScrollPane monScrollGest = new JScrollPane(); 
  monScrollGest.setViewportView(mesVinsGest); 
   
        GroupLayout panGestLayout = new GroupLayout(panGest); 
        panGest.setLayout(panGestLayout); 
        panGestLayout.setHorizontalGroup( 
            panGestLayout.createParallelGroup(GroupLayout.Alignment.LEADING) 
            .addGroup(panGestLayout.createSequentialGroup() 
                .addComponent(monScrollGest, GroupLayout.DEFAULT_SIZE, 199, Short.MAX_VALUE) 
                .addGap(18, 18, 18) 
                .addGroup(panGestLayout.createParallelGroup(GroupLayout.Alignment.LEADING) 
                    .addGroup(panGestLayout.createSequentialGroup() 
                        .addGroup(panGestLayout.createParallelGroup(GroupLayout.Alignment.LEADING) 
                            .addComponent(lblGestBout, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                            .addComponent(lblGestPrix, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                            .addComponent(lblGestAnnee, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                            .addComponent(lblGestQte, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                            .addComponent(lblGestCat, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                            .addComponent(lblGestReg, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                            .addComponent(lblGestPays, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                            .addComponent(lblGestCep, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                            .addComponent(lblGestApp, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
                        .addGap(22, 22, 22)) 
                    .addGroup(panGestLayout.createSequentialGroup() 
                        .addComponent(lblGestCont, GroupLayout.DEFAULT_SIZE, 111, Short.MAX_VALUE) 
                        .addGap(40, 40, 40))) 
                .addGroup(panGestLayout.createParallelGroup(GroupLayout.Alignment.LEADING) 
                    .addComponent(tfGestApp, GroupLayout.DEFAULT_SIZE, 138, Short.MAX_VALUE) 
                    .addComponent(tfGestCep) 
                    .addComponent(tfGestPays) 
                    .addComponent(tfGestReg) 
                    .addComponent(tfGestCat) 
                    .addComponent(tfGestQte) 
                    .addComponent(tfGestAnnee) 
                    .addComponent(tfGestPrix) 
                    .addComponent(tfGestCont) 
                    .addComponent(tfGestBout)) 
                .addGap(18, 18, 18)) 
        ); 
        panGestLayout.setVerticalGroup( 
            panGestLayout.createParallelGroup(GroupLayout.Alignment.LEADING) 
            .addComponent(monScrollGest) 
            .addGroup(panGestLayout.createSequentialGroup() 
                .addContainerGap() 
                .addGroup(panGestLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblGestBout, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfGestBout)) 
                .addGap(9, 9, 9) 
                .addGroup(panGestLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(tfGestCont) 
                    .addComponent(lblGestCont, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) 
                .addGroup(panGestLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblGestPrix, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfGestPrix)) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) 
                .addGroup(panGestLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblGestAnnee, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfGestAnnee)) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) 
                .addGroup(panGestLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblGestQte, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfGestQte)) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) 
                .addGroup(panGestLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblGestCat, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfGestCat)) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) 
                .addGroup(panGestLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblGestReg, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfGestReg)) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) 
                .addGroup(panGestLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblGestPays, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfGestPays)) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) 
                .addGroup(panGestLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblGestCep, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfGestCep)) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) 
                .addGroup(panGestLayout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblGestApp, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfGestApp)) 
                .addGap(73, 73, 73)) 
        ); 

        monTabbedPane.addTab("Gestion de vins", panGest); 
  panGest.setBackground(colorPan); 
  } 
  
  
 private void suppModVins() { 
  JLabel lblSuppBout = new JLabel("Bouteille"); 
  JLabel lblSuppCont = new JLabel("Contenance"); 
  JLabel lblSuppPrix = new JLabel("Prix"); 
  JLabel lblSuppAnnee = new JLabel("Année"); 
  JLabel lblSuppQte = new JLabel("Quantité"); 
  JLabel lblSuppCat = new JLabel("Catégorie"); 
  JLabel lblSuppReg = new JLabel("Région"); 
  JLabel lblSuppPays = new JLabel("Pays"); 
  JLabel lblSuppCep = new JLabel("Cépage"); 
  JLabel lblSuppApp = new JLabel("Appellation"); 

  JTextField tfSuppBout = new JTextField(); 
  JTextField tfSuppCont = new JTextField(); 
  JTextField tfSuppPrix = new JTextField(); 
  JTextField tfSuppAnnee = new JTextField(); 
  JTextField tfSuppQte = new JTextField(); 
  JTextField tfSuppCat = new JTextField(); 
  JTextField tfSuppReg = new JTextField(); 
  JTextField tfSuppPays = new JTextField(); 
  JTextField tfSuppCep = new JTextField(); 
  JTextField tfSuppApp = new JTextField(); 

  JButton btnMAJ = new JButton("Mettre à Jour"); 
  JButton btnSupp = new JButton("Suppression"); 

  JList mesVinsSupp = new JList(); 
  JScrollPane monScrollSupp = new JScrollPane(); 
  monScrollSupp.setViewportView(mesVinsSupp); 

  GroupLayout jPanel3Layout = new GroupLayout(panSupp); 
        panSupp.setLayout(jPanel3Layout); 
        jPanel3Layout.setHorizontalGroup( 
            jPanel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
            .addGroup(jPanel3Layout.createSequentialGroup() 
                .addComponent(monScrollSupp, GroupLayout.DEFAULT_SIZE, 223, Short.MAX_VALUE) 
                .addGap(18, 18, 18) 
                .addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
                    .addGroup(jPanel3Layout.createSequentialGroup() 
                        .addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
                            .addGroup(jPanel3Layout.createSequentialGroup() 
                                .addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
                                    .addComponent(lblSuppBout, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                                    .addComponent(lblSuppPrix, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                                    .addComponent(lblSuppAnnee, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                                    .addComponent(lblSuppQte, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                                    .addComponent(lblSuppCat, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                                    .addComponent(lblSuppReg, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                                    .addComponent(lblSuppPays, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                                    .addComponent(lblSuppCep, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                                    .addComponent(lblSuppApp, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
                                .addGap(22, 22, 22)) 
                            .addGroup(jPanel3Layout.createSequentialGroup() 
                                .addComponent(lblSuppCont, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                                .addGap(40, 40, 40))) 
                        .addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
                            .addComponent(tfSuppApp) 
                            .addComponent(tfSuppCep) 
                            .addComponent(tfSuppPays) 
                            .addComponent(tfSuppReg) 
                            .addComponent(tfSuppCat) 
                            .addComponent(tfSuppQte) 
                            .addComponent(tfSuppAnnee) 
                            .addComponent(tfSuppPrix) 
                            .addComponent(tfSuppCont) 
                            .addComponent(tfSuppBout))) 
                    .addGroup(jPanel3Layout.createSequentialGroup() 
                        .addComponent(btnMAJ, GroupLayout.DEFAULT_SIZE, 131, Short.MAX_VALUE) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addComponent(btnSupp, GroupLayout.DEFAULT_SIZE, 128, Short.MAX_VALUE))) 
                .addGap(18, 18, 18)) 
        ); 
        jPanel3Layout.setVerticalGroup( 
            jPanel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
            .addComponent(monScrollSupp) 
            .addGroup(jPanel3Layout.createSequentialGroup() 
                .addContainerGap() 
                .addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblSuppBout, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfSuppBout)) 
                .addGap(9, 9, 9) 
                .addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(tfSuppCont) 
                    .addComponent(lblSuppCont, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) 
                .addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblSuppPrix, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfSuppPrix)) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) 
                .addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblSuppAnnee, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfSuppAnnee)) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) 
                .addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblSuppQte, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfSuppQte)) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) 
                .addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblSuppCat, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfSuppCat)) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) 
                .addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblSuppReg, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfSuppReg)) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) 
                .addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblSuppPays, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfSuppPays)) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) 
                .addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblSuppCep, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfSuppCep)) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) 
                .addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                    .addComponent(lblSuppApp, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(tfSuppApp)) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                .addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
                    .addComponent(btnMAJ, GroupLayout.DEFAULT_SIZE, 115, Short.MAX_VALUE) 
                    .addComponent(btnSupp, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
                .addContainerGap()) 
        ); 

        monTabbedPane.addTab("Gestion des Suppression et Modfications", panSupp); 
  panSupp.setBackground(colorPan); 
         
  } 
   
 private void ajoutVins() { 
  JLabel lblAddBoutNom = new JLabel("BOUTEILLE"); 
  JLabel lblAddBout = new JLabel("Bouteille"); 
  JLabel lblAddCont = new JLabel("Contenance"); 
  JLabel lblAddPrix = new JLabel("Prix"); 
  JLabel lblAddAnnee = new JLabel("Année"); 
  JLabel lblAddQte = new JLabel("Quantité"); 
  JLabel lblAddCat = new JLabel("Catégorie"); 
  JLabel lblAddReg = new JLabel("Région"); 
  JLabel lblAddPays = new JLabel("Pays"); 
  JLabel lblAddCep = new JLabel("Cépage"); 
  JLabel lblAddApp = new JLabel("Appellation"); 

  JLabel lblAddCateg = new JLabel("CATEGORIE"); 
  JLabel lblAddCategL = new JLabel("Libellé"); 

  JLabel lblAddCepag = new JLabel("CEPAGE"); 
  JLabel lblAddCepagL = new JLabel("Libellé"); 

  JLabel lblAddPaysP = new JLabel("PAYS"); 
  JLabel lblAddPaysPL = new JLabel("Libellé"); 

  JLabel lblAddRegion = new JLabel("REGION"); 
  JLabel lblAddRegionL = new JLabel("Libellé"); 

  JLabel lblAddAppell = new JLabel("APPELLATION"); 
  JLabel lblAddAppellL = new JLabel("Libellé"); 

  JTextField tfAddBout = new JTextField(); 
  JTextField tfAddCont = new JTextField(); 
  JTextField tfAddPrix = new JTextField(); 
  JTextField tfAddAnnee = new JTextField(); 
  JTextField tfAddQte = new JTextField(); 

  final JTextField tfAddCat = new JTextField(); 
  final JTextField tfAddCep = new JTextField(); 
  final JTextField tfAddPays = new JTextField(); 
  final JTextField tfAddReg = new JTextField(); 
  final JTextField tfAddApp = new JTextField(); 


  final JComboBox cepCB = new JComboBox(); 
  final JComboBox catCB = new JComboBox(); 
  final JComboBox paysCB = new JComboBox(); 
  final JComboBox regCB = new JComboBox(); 
  final JComboBox appCB = new JComboBox(); 

  JButton btnAddBout = new JButton("Ajouter une Bouteille"); 
  JButton btnAddCat = new JButton("Ajouter une Catégorie"); 
  JButton btnAddCep = new JButton("Ajouter un Cépage"); 
  JButton btnAddPays = new JButton("Ajouter un Pays"); 
  JButton btnAddReg = new JButton("Ajouter une Région"); 
  JButton btnAddApp = new JButton("Ajouter une Appellation"); 
   
        GroupLayout jPanel2Layout = new GroupLayout(panAdd); 
        panAdd.setLayout(jPanel2Layout); 
        jPanel2Layout.setHorizontalGroup( 
            jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
            .addGroup(jPanel2Layout.createSequentialGroup() 
                .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
                    .addGroup(jPanel2Layout.createSequentialGroup() 
                        .addComponent(lblAddBoutNom) 
                        .addGap(94, 94, 94)) 
                    .addGroup(jPanel2Layout.createSequentialGroup() 
                        .addContainerGap() 
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.TRAILING) 
                            .addComponent(lblAddCateg, GroupLayout.Alignment.LEADING) 
                            .addGroup(GroupLayout.Alignment.LEADING, jPanel2Layout.createSequentialGroup() 
                                .addComponent(lblAddCategL) 
                                .addGap(53, 53, 53) 
                                .addComponent(tfAddCat, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
                            .addGroup(jPanel2Layout.createSequentialGroup() 
                                .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
                                    .addGroup(GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() 
                                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
                                            .addComponent(lblAddReg) 
                                            .addComponent(lblAddPays) 
                                            .addComponent(lblAddCep) 
                                            .addComponent(lblAddApp)) 
                                        .addGap(29, 29, 29)) 
                                    .addGroup(jPanel2Layout.createSequentialGroup() 
                                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
                                            .addComponent(lblAddAnnee) 
                                            .addComponent(lblAddQte) 
                                            .addComponent(lblAddCat) 
                                            .addComponent(lblAddCont) 
                                            .addComponent(lblAddPrix) 
                                            .addComponent(lblAddBout)) 
                                        .addGap(24, 24, 24))) 
                                .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
                                    .addComponent(tfAddPrix) 
                                    .addComponent(tfAddAnnee) 
                                    .addComponent(tfAddQte) 
                                    .addComponent(tfAddCont) 
                                    .addComponent(tfAddBout, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                                    .addComponent(cepCB, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                                    .addComponent(catCB, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                                    .addComponent(paysCB, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                                    .addComponent(regCB, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                                    .addComponent(appCB, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) 
                            .addComponent(btnAddBout, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                            .addComponent(btnAddCat, GroupLayout.DEFAULT_SIZE, 217, Short.MAX_VALUE)))) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) 
                .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.TRAILING) 
                    .addComponent(lblAddCepag, GroupLayout.Alignment.LEADING) 
                    .addGroup(GroupLayout.Alignment.LEADING, jPanel2Layout.createSequentialGroup() 
                        .addComponent(lblAddCepagL) 
                        .addGap(53, 53, 53) 
                        .addComponent(tfAddCep, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
                    .addComponent(btnAddCep, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(lblAddPaysP, GroupLayout.Alignment.LEADING) 
                    .addGroup(GroupLayout.Alignment.LEADING, jPanel2Layout.createSequentialGroup() 
                        .addComponent(lblAddPaysPL) 
                        .addGap(53, 53, 53) 
                        .addComponent(tfAddPays, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
                    .addComponent(btnAddPays, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(lblAddRegion, GroupLayout.Alignment.LEADING) 
                    .addGroup(GroupLayout.Alignment.LEADING, jPanel2Layout.createSequentialGroup() 
                        .addComponent(lblAddRegionL) 
                        .addGap(53, 53, 53) 
                        .addComponent(tfAddReg, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
                    .addComponent(btnAddReg, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                    .addComponent(lblAddAppell, GroupLayout.Alignment.LEADING) 
                    .addGroup(GroupLayout.Alignment.LEADING, jPanel2Layout.createSequentialGroup() 
                        .addComponent(lblAddAppellL) 
                        .addGap(53, 53, 53) 
                        .addComponent(tfAddApp, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
                    .addComponent(btnAddApp, GroupLayout.DEFAULT_SIZE, 220, Short.MAX_VALUE)) 
                .addGap(67, 67, 67)) 
        ); 
        jPanel2Layout.setVerticalGroup( 
            jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
            .addGroup(jPanel2Layout.createSequentialGroup() 
                .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.TRAILING) 
                    .addGroup(jPanel2Layout.createSequentialGroup() 
                        .addComponent(lblAddCepag) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                            .addComponent(lblAddCepagL) 
                            .addComponent(tfAddCep, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addComponent(btnAddCep) 
                        .addGap(8, 8, 8)) 
                    .addGroup(jPanel2Layout.createSequentialGroup() 
                        .addComponent(lblAddBoutNom) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                            .addComponent(lblAddBout) 
                            .addComponent(tfAddBout, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                            .addComponent(lblAddCont) 
                            .addComponent(tfAddCont)))) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
                    .addGroup(jPanel2Layout.createSequentialGroup() 
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                            .addComponent(lblAddPrix) 
                            .addComponent(tfAddPrix)) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                            .addComponent(lblAddAnnee) 
                            .addComponent(tfAddAnnee)) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                            .addComponent(lblAddQte) 
                            .addComponent(tfAddQte))) 
                    .addGroup(jPanel2Layout.createSequentialGroup() 
                        .addComponent(lblAddPaysP) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                            .addComponent(lblAddPaysPL) 
                            .addComponent(tfAddPays, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addComponent(btnAddPays) 
                        .addGap(3, 3, 3))) 
                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
                    .addGroup(jPanel2Layout.createSequentialGroup() 
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                            .addComponent(lblAddCat) 
                            .addComponent(cepCB)) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                            .addComponent(lblAddReg) 
                            .addComponent(catCB)) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                            .addComponent(lblAddPays) 
                            .addComponent(paysCB)) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)) 
                    .addGroup(jPanel2Layout.createSequentialGroup() 
                        .addComponent(lblAddRegion) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                            .addComponent(lblAddRegionL) 
                            .addComponent(tfAddReg, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addComponent(btnAddReg) 
                        .addGap(9, 9, 9))) 
                .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
                    .addGroup(jPanel2Layout.createSequentialGroup() 
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                            .addComponent(lblAddCep) 
                            .addComponent(regCB)) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                            .addComponent(lblAddApp) 
                            .addComponent(appCB)) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addComponent(btnAddBout, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                        .addGap(3, 3, 3) 
                        .addComponent(lblAddCateg) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                            .addComponent(lblAddCategL) 
                            .addComponent(tfAddCat, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addComponent(btnAddCat, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
                        .addGap(38, 38, 38)) 
                    .addGroup(jPanel2Layout.createSequentialGroup() 
                        .addComponent(lblAddAppell) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) 
                            .addComponent(lblAddAppellL) 
                            .addComponent(tfAddApp, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
                        .addComponent(btnAddApp) 
                        .addGap(116, 116, 116)))) 
        ); 
         

        btnAddReg.addActionListener(new ActionListener() 
     { 
         @Override 
         public void actionPerformed(ActionEvent e){ 
          String monLibelle = tfAddReg.getText().toString(); 
          Region uneRegion; 
          int maxOcc; 
           
          maxOcc = 0; 
             if(monLibelle.equals("")){ 
              //Champs VIDE DONC PAS D'AJOUT 
              JOptionPane.showMessageDialog(null, "Votre champs est vide, veuillez le renseigner afin de l'insérer", "Alerte", JOptionPane.ERROR_MESSAGE);  
             } 
             else{ 
              // NON VIDE AJOUT POSSIBLE 
              uneRegion = new Region(maxOcc,monLibelle); 
              JOptionPane.showMessageDialog(null, "mmmmmmmmmm", "Alerte", JOptionPane.ERROR_MESSAGE);  
             }  
         } 
      }); 
         
        btnAddPays.addActionListener(new ActionListener() 
     { 
         @Override 
         public void actionPerformed(ActionEvent e){ 
          String monCode = tfAddPays.getText().toString(); 
          int maxOcc; 
           
          Pays unPays; 
           
          maxOcc = 0; 
           
             if(monCode.equals("")){ 
              //Champs VIDE DONC PAS D'AJOUT 
              JOptionPane.showMessageDialog(null, "Votre champs est vide, veuillez le renseigner afin de l'insérer", "Alerte", JOptionPane.ERROR_MESSAGE);  
             } 
             else{ 
              // NON VIDE AJOUT POSSIBLE 
              unPays = new Pays(maxOcc, monCode); 
               
             }  
         } 
      }); 
         
        btnAddApp.addActionListener(new ActionListener() 
     { 
         @Override 
         public void actionPerformed(ActionEvent e){ 
          String monLibelle = tfAddApp.getText().toString(); 
          Appellation uneAppellation; 
          int maxOcc; 
           
          maxOcc = 0; 
             if(monLibelle.equals("")){ 
              //Champs VIDE DONC PAS D'AJOUT 
              JOptionPane.showMessageDialog(null, "Votre champs est vide, veuillez le renseigner afin de l'insérer", "Alerte", JOptionPane.ERROR_MESSAGE);  
             } 
             else{ 
              // NON VIDE AJOUT POSSIBLE 
              uneAppellation = new Appellation(maxOcc,monLibelle); 
               
             }  
         } 
      }); 
         
        btnAddCep.addActionListener(new ActionListener() 
     { 
         @Override 
         public void actionPerformed(ActionEvent e){ 
          String monLibelle = tfAddCep.getText().toString(); 
          Cepage unCepage; 
          int maxOcc; 
           
          maxOcc = 0; 
             if(monLibelle.equals("")){ 
              //Champs VIDE DONC PAS D'AJOUT 
              JOptionPane.showMessageDialog(null, "Votre champs est vide, veuillez le renseigner afin de l'insérer", "Alerte", JOptionPane.ERROR_MESSAGE);  
             } 
             else{ 
              // NON VIDE AJOUT POSSIBLE 
              unCepage = new Cepage(maxOcc, monLibelle); 
             }  
         } 
      }); 
         
        btnAddCat.addActionListener(new ActionListener() 
     { 
         @Override 
         public void actionPerformed(ActionEvent e){ 
          String monLibelle = tfAddCat.getText().toString(); 
          Categorie uneCat; 
          int maxOcc; 
           
          maxOcc = 0; 
             if(monLibelle.equals("")){ 
              //Champs VIDE DONC PAS D'AJOUT 
              JOptionPane.showMessageDialog(null, "Votre champs est vide, veuillez le renseigner afin de l'insérer", "Alerte", JOptionPane.ERROR_MESSAGE);  
             } 
             else{ 
              // NON VIDE AJOUT POSSIBLE 
              uneCat = new Categorie(maxOcc, monLibelle); 
             }  
         } 
      }); 
         
        btnAddBout.addActionListener(new ActionListener() 
     { 
         @Override 
         public void actionPerformed(ActionEvent e){ 
          String mavalApp = String.valueOf(appCB.getSelectedItem()); 
          String mavalReg = String.valueOf(regCB.getSelectedItem()); 
          String mavalCep = String.valueOf(cepCB.getSelectedItem()); 
          String mavalCat = String.valueOf(catCB.getSelectedItem()); 
          String mavalPays = String.valueOf(paysCB.getSelectedItem()); 
          VinAvecAppellation vinApp; 
          VinSimple vinSimple; 
          int maxOcc; 
           
             if(mavalCep.toString() == ""){ 
              if(mavalApp != ""){ 
               //VIN AVEC APPELLATION 
               if(mavalCep != ""){ 
                //CEPAGE EXISTANT 
                //recherche du max avec SELECT MAX+1 
                //vinApp = new VinAvecAppellation(maxOcc, nomTF.getText(), (double) contTF.getText(), (double) prixTF.getText(), (int) anneeTF.getText(), (int) qteTF.getText(), mavalCat,mavalCep,mavalPays, mavalReg, mavalApp); 
                 
               } 
               else{ 
                //PAS DE CEPAGE 
                //recherche du max avec SELECT MAX+1 
                //vinApp = new VinAvecAppellation(maxOcc, nomTF.getText(), (double) contTF.getText(), (double) prixTF.getText(), (int) anneeTF.getText(), (int) qteTF.getText(), mavalCat, mavalPays, mavalReg, mavalApp); 
               }               
              } 
             } 
              else{ 
               //VIN SIMPLE 
               if(mavalCep != ""){ 
                //CEPAGE EXISTANT 
                if(mavalReg != ""){ 
                 //REGION EXISTANTE 
                 //vinSimple = new VinSimple(maxOcc, nomTF.getText(), (double) contTF.getText(),(double) prixTF.getText(), (int) anneeTF.getText(), (int) qteTF.getText(), Categorie cat,Cepage cep,Pays pays, Region reg); 
                } 
                else{ 
                 //PAS DE REGION 
                 //vinSimple = new VinSimple(maxOcc, nomTF.getText(), (double) contTF.getText(),(double) prixTF.getText(), (int) anneeTF.getText(), (int) qteTF.getText(), Categorie cat,Cepage cep,Pays pays); 
                } 
               } 
               else{ 
                //Pas de cepage 
                if(mavalReg != ""){ 
                 //REGION EXISTANTE 
                 //vinSimple = new VinSimple(maxOcc, nomTF.getText(), (double) contTF.getText(),(double) prixTF.getText(), (int) anneeTF.getText(), (int) qteTF.getText(), Categorie cat,Pays pays, Region reg); 
                } 
                else{ 
                 //PAS DE REGION 
                 //vinSimple = new VinSimple(maxOcc, nomTF.getText(), (double) contTF.getText(),(double) prixTF.getText(), (int) anneeTF.getText(), (int) qteTF.getText(), Categorie cat, Pays pays); 
                } 
               } 
              } 
             } 
         }); 
         
        monTabbedPane.addTab("Gestion des ajouts", panAdd); 
        panAdd.setBackground(colorPan); 
   

   
   
 } 
  





}



Et j'obtiens ça :

https://imgur.com/zwc3M,GI6i3,lULyr

3 images visibles sur le lien



Merci pour ton aide KX
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bon bah c'est plutôt pas mal ;-)
Il y a juste les boutons qui sont un peu moches, mais ça peut se régler simplement, exemple :

// Placer les boutons dans des Panel avec des Layout autonomes pour éviter le redimensionnement

JButton btnMAJ = new JButton("Mettre à Jour");
JPanel btnMAJ_p = new JPanel(new FlowLayout());
btnMAJ_p.add(btnMAJ);
JButton btnSupp = new JButton("Suppression"); 
JPanel btnSupp_p = new JPanel(new FlowLayout());
btnSupp_p.add(btnSupp);

// Remplacer les boutons par les panels qui les englobent

.addGroup(jPanel3Layout.createSequentialGroup() 
    .addComponent(btnMAJ_p, GroupLayout.DEFAULT_SIZE, 131, Short.MAX_VALUE) 
    .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) 
    .addComponent(btnSupp_p, GroupLayout.DEFAULT_SIZE, 128, Short.MAX_VALUE))) 

// ...

.addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING) 
    .addComponent(btnMAJ_p, GroupLayout.DEFAULT_SIZE, 115, Short.MAX_VALUE) 
    .addComponent(btnSupp_p, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
0
Xineroks Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   3
 
Les boutons c'était voulu ^^. J'ai un trip avec les gros boutons alors si ça redimensionne ça ne me dérange pas :P
0