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 :

éditer dans une JTable?


Sujet :

Composants Java

  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Par défaut éditer dans une JTable?
    salut
    j'ai besoin de faire la saisie d'une matrice pour cela j'ai utilisé une JTable et je veux entrer les elements de ma mtrice dans les cases (cell) de la JTable;
    mais le probléme c'est que la JTable ne s'affiche méme pas! il y a juste une zone blanche qui s'affiche

    merci

  2. #2
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Bonjour, le mieu serait que tu fasses voir le code de ta construction de JTable et de l'ajout à la JFrame pour qu'on puisse voir ce qui ne va pas.

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Par défaut
    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
    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
    
    public class Interfacee extends JFrame {
    
    	private static final long serialVersionUID = 1L;
    
    	private JPanel jContentPane = null;
    
    	private JTextField jTextField_long = null;
    
    	private JTextField jTextField_dim = null;
    
    	private JLabel jLabel = null;
    
    	private JButton jButton = null;
    
    	private JLabel jLabel1 = null;
    
    	private JLabel jLabel2 = null;
    
    	private JTable Table = null;
    	private JLabel jLabel3 = null;
    
    	
    	private JTextField getJTextField_long() {
    		if (jTextField_long == null) {
    			jTextField_long = new JTextField();
    			jTextField_long.setText("");
    			jTextField_long.setBounds(new Rectangle(216, 5, 43, 20));
    		}
    		return jTextField_long;
    	}
    
    	
    	private JTextField getJTextField_dim() {
    		if (jTextField_dim == null) {
    			jTextField_dim = new JTextField();
    			jTextField_dim.setText("");
    			jTextField_dim.setBounds(new Rectangle(222, 60, 41, 20));
    		}
    		return jTextField_dim;
    	}
    
    	
    	private JButton getJButton() {
    		if (jButton == null) {
    			jButton = new JButton();
    			jButton.setText("ok");
    			jButton.setBounds(new Rectangle(158, 209, 67, 22));
    			jButton.addActionListener(new java.awt.event.ActionListener() {
    				public void actionPerformed(java.awt.event.ActionEvent e) {
    					int n =  Integer.parseInt(jTextField_long.getText());
    					int k = Integer.parseInt(jTextField_dim.getText());
    					
    					System.out.println(n); 
    					JOptionPane.showMessageDialog(null, "les mots du code sont:");
    				
    				}
    			});
    			jButton.addActionListener(new java.awt.event.ActionListener() {
    				public void actionPerformed(java.awt.event.ActionEvent e) {
    					
    				
    				}
    			});
    		}
    		return jButton;
    	}
    
    	private JTable getTable() {
    		if (Table == null) {
    			Table = new JTable();
    			Table.setBounds(new Rectangle(68, 119, 268, 80));
    			Table.setCellSelectionEnabled(false);
    			Table.setShowGrid(true);
    			Table.setEnabled(false);
    			
    
    			Table.setCellSelectionEnabled(true);
    			Table.setCellEditor(null);
    			
    			
    			
    		}
    		return Table;
    	}
    
    		public static void main(String[] args) {
    		// TODO Raccord de méthode auto-généré
    		SwingUtilities.invokeLater(new Runnable() {
    			public void run() {
    				Interfacee thisClass = new Interfacee();
    				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    				thisClass.setVisible(true);
    				
    					    
    			}
    		
    		});
    	}
    
    	
    	public Interfacee() {
    		super();
    		initialize();
    	}
    
    	
    	private void initialize() {
    		this.setSize(434, 273);
    		this.setContentPane(getJContentPane());
    		this.setTitle("projet_code");
    		this.setVisible(true);
    	}
    
    	private JPanel getJContentPane() {
    		if (jContentPane == null) {
    			jLabel3 = new JLabel();
    			jLabel3.setBounds(new Rectangle(69, 98, 262, 16));
    			jLabel3.setText("Veuillez entrer la matrice génératrice:");
    			jLabel2 = new JLabel();
    			jLabel2.setBounds(new Rectangle(106, 47, 5, 15));
    			jLabel2.setText("Veullez entrer la longueur du code:");
    			jLabel1 = new JLabel();
    			jLabel1.setBounds(new Rectangle(2, 53, 215, 33));
    			jLabel1.setText("Veuillez entrer la dimension du code:");
    			jLabel = new JLabel();
    			jLabel.setText("Veuillez entrer la longueur du code:");
    			jLabel.setBounds(new Rectangle(0, -1, 207, 28));
    			jContentPane = new JPanel();
    			jContentPane.setLayout(null);
    			jContentPane.add(getJTextField_dim(), null);
    			jContentPane.add(getJTextField_long(), null);
    			jContentPane.add(jLabel, null);
    			jContentPane.add(getJButton(), null);
    			jContentPane.add(jLabel1, null);
    			jContentPane.add(jLabel2, null);
    			JTable Table = new JTable();
    			Table.setLayout(null);
    			jContentPane.add(Table, null);
    			jContentPane.add(getTable(), null);
    			jContentPane.add(jLabel3, null);
    		}
    		return jContentPane;
    	}
    
    }

    ps:je doi y entrer une matrice d'entiers

    merci d'avance

  4. #4
    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
    Par défaut
    S'il vous plaît, évitez d'utiliser un layout null avec position des composants en absolu. C'est inadapté, et même si ça parait plus simple, il est bien préférable d'apprendre à utiliser les layouts afin d'éviter les petits problèmes récurrents qu'ont tous les débutants ou presque qui utilisent le layout null.

  5. #5
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Vires le Ça devrait être un mieux (on devrait bannir JBuilder...)

  6. #6
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Par défaut
    j'ai supprimer cette ligne de mon code! mais ma fenétre est mal organisée et mon probléme est le méme.....

  7. #7
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2008
    Messages : 43
    Par défaut
    Salut,

    Dans cette méthode :
    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
     
    private JTable getTable() {
    		if (Table == null) {
    			Table = new JTable();
    			Table.setBounds(new Rectangle(68, 119, 268, 80));
    			Table.setCellSelectionEnabled(false);
    			Table.setShowGrid(true);
    			Table.setEnabled(false);
     
     
    			Table.setCellSelectionEnabled(true);
    			Table.setCellEditor(null);
     
     
     
    		}
    		return Table;
    	}
    Tu as "Table = new JTable();", ok mais tu n'initialise aucun nombre de ligne, ni un nombre de colonne.

    Essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Table = new JTable(4,4); //par exemple
    A++

  8. #8
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Par défaut
    Ah oui,j'ai pas vu ça. maintenant ça s'affiche merci infiniment extraman!
    maintenant il reste à écrire dessus

  9. #9
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Il faut définir un TableModel qui va contenir les données à afficher. Exemple:
    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
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;
     
    public class Test extends JFrame {
     
       protected final String[] columns = { "Colonne 1", "Colonne 2", "Colonne 3" };
     
       public Test() {
          JTable myTable = new JTable();
          JScrollPane scroll = new JScrollPane(myTable);
     
          myTable.setModel(new TblModel());
          add(scroll);
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          pack();
          setLocationRelativeTo(null);
       }
     
       public static void main(String args[]) {
          new Test().setVisible(true);
       }
     
       private class TblModel extends DefaultTableModel {
     
          @Override
          public String getColumnName(int column) {
             return columns[column];
          }
     
          @Override
          public Object getValueAt(int row, int column) {
             StringBuilder sb = new StringBuilder();
             sb.append("Ligne ").append(row).append(" - Colonne ").append(column);
     
             return sb.toString();
          }
     
          @Override
          public int getRowCount() {
             /* Pour l'exemple ... */
             final int numRows = 3;
     
             return numRows;
          }
     
          @Override
          public int getColumnCount() {
             return columns.length;
          }
       }
    }
    Poses des questions si tu ne comprends pas quelque chose.

  10. #10
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Par défaut
    merci pour ta réponse 'muad'dib'
    en fait ça commence à tourner
    mais j'ai encore une question:
    comment récupérer les entiers entrés dans la jtable?

Discussions similaires

  1. Epaissir une ligne dans dans une JTable
    Par daninho dans le forum Composants
    Réponses: 9
    Dernier message: 26/01/2006, 14h43
  2. Insérer un vector dans une jTable...
    Par Empty_body dans le forum Composants
    Réponses: 3
    Dernier message: 14/12/2005, 17h35
  3. [Jtable] problème de suppression dans une Jtable
    Par gianni17 dans le forum Composants
    Réponses: 1
    Dernier message: 02/12/2005, 18h36
  4. Insertion des boutons et des images dans une JTable
    Par anouar dans le forum Composants
    Réponses: 2
    Dernier message: 17/11/2005, 20h23
  5. [JTable] couleur de sélection dans une JTable
    Par spoutyoyo dans le forum Composants
    Réponses: 7
    Dernier message: 06/12/2004, 11h43

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