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

Composants Java Discussion :

Problème affichage Jtable


Sujet :

Composants Java

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut Problème affichage Jtable
    Bonjour,

    J'ai un formulaire ou j'ai ajouté un JTable et celui-ci présente plusieurs problème:
    - J'ai mais deux dernière colonne qui ne s'affiche pas
    - Je souhaiterai mettre une taille dynamique pour mes colonnes qui s'ajusterait en fonction de la taille du contenu des cellules

    Voici mon code:
    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
    public class Formation extends JFrame {
    	/**
             * serialVersionUID
             */
    	private static final long serialVersionUID = 1L;
    	private JButton boutonCreer;
    	private JLabel labelNomFormation;
    	private JLabel labelDureeTypeSeance;
    	private JTextField txtNomFormation;
    	private JTextField txtDureeTypeSeance;
    	private JPanel panPrincipal;
    	private JPanel panFormation;
    	private JPanel panChamp;
    	private JPanel panModule;
     
    	private ModuleTable moduleTable;
     
    	public Formation(){
            this.setTitle("Caractéristique de la formation");
            this.setSize(600, 700);
            this.setLocationRelativeTo(null);
            this.setVisible(true);
     
            // LABEL
            labelNomFormation = new JLabel("* Nom de la Formation :");
            labelNomFormation.setFont(new Font(null, Font.PLAIN, 14));
            labelDureeTypeSeance = new JLabel("* Durée type d'une séance :");
            labelDureeTypeSeance.setFont(new Font(null, Font.PLAIN, 14));
     
            // TEXT
    		txtNomFormation  = new JTextField();
    		txtDureeTypeSeance  = new JTextField();     
     
    		panChamp = new JPanel(new GridLayout(2,2,20,5));
    		panChamp.add(labelNomFormation);
    		panChamp.add(txtNomFormation);
    		panChamp.add(labelDureeTypeSeance);
    		panChamp.add(txtDureeTypeSeance);
     
    		panFormation = new JPanel(new BorderLayout());
    		panFormation.add(panChamp, BorderLayout.NORTH);
     
    		moduleTable = new ModuleTable();
    		panModule = new JPanel(new BorderLayout());
    		panModule.add(moduleTable,  BorderLayout.NORTH);
     
    		panPrincipal = new JPanel();
            panPrincipal.add(panFormation);
            panPrincipal.add(panModule);
    		boutonCreer = new JButton("Créer la formation");
    		boutonCreer.setPreferredSize(new Dimension(200, 30));
            panPrincipal.add(boutonCreer);
            this.setContentPane(panPrincipal);
            }
    }
    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
    public class ModuleTable extends JPanel{
    	/**
             * serialVersionUID
             */
    	private static final long serialVersionUID = 1L;
    	private ModuleTableModele moduleModele = new ModuleTableModele();
        private JTable tableau;
        private JPanel panTableau;
     
        public ModuleTable() {
            super();
            tableau = new JTable(moduleModele);
            tableau.getTableHeader().setBackground(Color.YELLOW);
            //tableau.setRowHeight(200);
            //Empêche le déplacement des colonne
            tableau.getTableHeader().setReorderingAllowed(false); 
            //Empêche de changer la taille des colonne
            tableau.getTableHeader().setResizingAllowed(false);
            panTableau = new JPanel();
            panTableau.add(tableau);
            add(new JScrollPane(tableau));
     
            //JPanel boutons = new JPanel();
     
            //boutons.add(new JButton(new AddAction()));
            //boutons.add(new JButton(new RemoveAction()));
     
            //getContentPane().add(boutons, BorderLayout.SOUTH);
        }
     }
    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
    public class ModuleTableModele extends AbstractTableModel{
    	/**
             * serialVersionUID
             */
    	private static final long serialVersionUID = 1L;
     
    	private final List<Module> modules = new ArrayList<Module>();
     
        private final String[] entetes = {"Nom", "Couleur", "Abréviation", "Nombre de séances, Modifier, Supprimer"};
     
        public ModuleTableModele() {
            super();
        }
     
        public int getRowCount() {
            return modules.size();
        }
     
        public int getColumnCount() {
            return entetes.length;
        }
     
        public String getColumnName(int columnIndex) {
            return entetes[columnIndex];
        }
     
        public Object getValueAt(int rowIndex, int columnIndex) {
            //switch(columnIndex){
              //  case 0:
                //    return amis.get(rowIndex).getPrenom();
                //case 1:
                  //  return amis.get(rowIndex).getNom();
                //case 2:
                  //  return amis.get(rowIndex).getCouleur();
                //case 3:
                  //  return amis.get(rowIndex).isHomme();
                //default:
                    return null; //Ne devrait jamais arriver
            //}
        }
     
        public void addModule(Module module) {
            modules.add(module);
     
            fireTableRowsInserted(modules.size() -1, modules.size() -1);
        }
     
        public void removeModule(int rowIndex) {
            modules.remove(rowIndex);
     
            fireTableRowsDeleted(rowIndex, rowIndex);
        }
    }
    J'ai suivi ce tuto pour le réaliser:
    http://baptiste-wicht.developpez.com...ing/jtable/#L4

    Voilà ce que j'ai actuellement:
    Images attachées Images attachées  

Discussions similaires

  1. Problème de Raffraichissement / Affichage jTable
    Par Dylest dans le forum Composants
    Réponses: 4
    Dernier message: 21/04/2015, 08h37
  2. Problème d'affichage JTable
    Par sellamelie dans le forum Composants
    Réponses: 6
    Dernier message: 12/12/2013, 10h23
  3. Problèmes affichage Canvas3D dans JTable
    Par izineela dans le forum 3D
    Réponses: 2
    Dernier message: 22/06/2012, 17h11
  4. Problème d'affichage JTable (lignes triplées)
    Par DLProject dans le forum Composants
    Réponses: 3
    Dernier message: 13/02/2012, 17h28
  5. Problème affichage JTable
    Par matt8-5 dans le forum Composants
    Réponses: 3
    Dernier message: 03/04/2007, 18h25

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