Bonsoir tous le monde, aujourd’hui, je veux augmenter la taille de colonne d'un tableau grave à jcomBox, mais je n'ai pas trouvé une bon solution
svp vous pouvez m'aider
Bonsoir tous le monde, aujourd’hui, je veux augmenter la taille de colonne d'un tableau grave à jcomBox, mais je n'ai pas trouvé une bon solution
svp vous pouvez m'aider
Bonjour,
Bienvenue au club, moi je veux ajouter du style css au code html "produit" par une servlet...
C'est quoi déjà jcomBox? Qu'est-ce que vous avez essayé? Quels sont les messages d'erreur?
Chaque fois que tu dis "je ne peux pas", n'oublie pas d'ajouter le mot "encore".
Salut nir63,
Il faut que tu sois plus précis dans tes descriptions : tout le monde n'a pas forcément lu tes précédentes discussions.
Je suppose que tu es toujours sur ton problème de JTable à nombre de colonnes variables (JTable et pas tableau !).
As-tu déjà écrit quelque chose ou pas ?
Pour te guider, si tu n'as encore rien trouvé : un ItemListener sur la JComboBox te permettra de détecter les changements de sélection (donc de nombre de colonnes). Ensuite, utilises un DefaultTableModel pour ta JTable : sa méthode setColumnCount() de permettra de modifier le nombre de colonnes. Toutefois, pour ajouter, il est préférable d'utiliser la méthode addColumn() qui te permettra de donner un nom à la colonne.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
merci pour ma répondre et dsl pour le retard
vraiment j'arrive pas à trouvé une solution, d'après mais recherche, j'ai trouvé seulement ce code et je sais trés bien qui n'est pas complet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { attribut.removeAllItems(); setSelectedItem(e.getItem()); String valeur = e.getItem().toString(); }}}
A priori, en fonction des discussions précédentes, il s'agirait du nombre de colonnes. Mais rien de sûr. Il faut que tu sois plus précis dans tes questions et explications.
S'il s'agit bien du nombre de colonnes, voici un exemple de principe :
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 public class ExempleJTable { public static void main(String[] args) { new ExempleJTable(); } public ExempleJTable() { final JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JPanel panel=new JPanel(); frame.setContentPane(panel); panel.setLayout(new BorderLayout()); Integer[] nbColumns = new Integer[10]; for(int i=0; i<nbColumns.length; i++) { nbColumns[i]=i; } JComboBox<Integer> combo = new JComboBox<>(nbColumns); panel.add(combo, BorderLayout.NORTH); final DefaultTableModel tableModel = new DefaultTableModel(); JTable table = new JTable(tableModel); panel.add(new JScrollPane(table), BorderLayout.CENTER); combo.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if ( e.getStateChange()==ItemEvent.SELECTED ) { // prise en compte de la valeur sélectionné dans la combo setColumnNumber(tableModel, (Integer)e.getItem()); } } }); frame.setSize(200, 200); frame.setLocationRelativeTo(null); frame.setVisible(true); } protected void setColumnNumber(DefaultTableModel tableModel, Integer newNumber) { int oldNumber = tableModel.getColumnCount(); if( oldNumber<newNumber ) { // ajout de colonnes for(int i=oldNumber; i<newNumber; i++) { tableModel.addColumn("Column "+(i+1)); } } else if ( oldNumber>newNumber ) { // suppression de colonnes tableModel.setColumnCount(newNumber); } // on ajoute des lignes lorsqu'on ajoute les premières colonnes et que la table ne contient pas de lignes if ( oldNumber==0 && tableModel.getRowCount()==0 ) { for (int i=0;i<3 ; i++){ tableModel.addRow(new Object[newNumber]); } } } }
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
quand j'ai voulu tester ce code, j'ai touvé un probleme avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part public void itemStateChanged(ItemEvent e)
Ici le code compile très bien et ne provoque aucunes erreurs à l'exécution, soit plus précis sur ce qui te pose problème exactement.
(Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
quand j'ai éssayé de tester le code de M.joel.drigo, j'ai touvé une error, je ne sais pas pk
Sans nous donner l'erreur... nous non plus
(Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Salut,
Je viens de retester mon source pour voir si je n'avais pas fait une erreur : aucune erreur trouvée. A moins que tu parles des imports que je n'ai pas mis, pour ne pas trop charger. Surtout que le but était de montrer le principe, et pas de donner un programme tout fait que tu as juste à copier-coller. En plus, un CTRL-SHIFT-O sous Eclipse ajoute automatiquement tous les bons import, sans ambiguïté. Sinon, à moins que tu sois pas sous java 7, je ne vois pas où il y aurait une erreur.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
j'ai fais copie coller et j'ai déjas ajouter des imports mais j'ai java 5, c'est pour ça, bon j'ai copmris le prancipe et je suis entrain de cherché une solution
Bonsoir tous le monde, j'ai fais un effort malheureusement ça marche pas bien.
voila mon codemais j'ai toujours le meme probleme avec public void itemStateChanged(ItemEvent e).
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 private JPanel SaisieHDPanel(){ JPanel panel = new JPanel(); panel.setBackground(Color.LIGHT_GRAY); SpringLayout layout = new SpringLayout(); panel.setLayout(layout); //panel.setLayout(new GridLayout(3,3)); // Tableau 1 JLabel DiLabel = new JLabel("Demande de "); panel.add(DiLabel); Box hBox1 = Box.createHorizontalBox(); hBox1.add(DiLabel); Object[] elements = new Object[]{"1","2","3","4","5","6"}; liste1 = new JComboBox(elements); panel.add(liste1); Box hBox2 = Box.createHorizontalBox(); hBox2.add(liste1); JLabel PLabel = new JLabel(" periode :"); panel.add(PLabel); Box hBox3 = Box.createHorizontalBox(); hBox3.add(PLabel); Box vBox = Box.createHorizontalBox(); vBox.add(hBox1); vBox.add(hBox2); vBox.add(hBox3); panel.add(vBox,BorderLayout.CENTER); Object[][] donnees = {{"D(i)"," "," "," "," "," "," "}}; String[] entetes = {"i","1","2","3","4","5","6"}; final JTable tableau = new JTable(donnees, entetes); panel.add(new JScrollPane(tableau), BorderLayout.CENTER); Integer[] nbColumns = new Integer[10]; for(int i=0; i<nbColumns.length; i++) { nbColumns[i]=i; } JComboBox combo = new JComboBox (nbColumns); panel.add(combo, BorderLayout.NORTH); combo.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if ( e.getStateChange()==ItemEvent.SELECTED ) { // prise en compte de la valeur sélectionné dans la combo setColumnNumber(tableau, (Integer)e.getItem()); } } }); SpringUtilities.makeCompactGrid(panel, 2, 1, 10, 0, 50, 10); return panel; } private void setColumnNumber(DefaultTableModel tableau, Integer newNumber) { int oldNumber = tableau.getColumnCount(); if( oldNumber<newNumber ) { // ajout de colonnes for(int i=oldNumber; i<newNumber; i++) { tableau.addColumn("Column "+(i+1)); } } }
moi personnellement j’utilise java 5
svp j'ai besoin de votre aide
On ne sait toujours pas quel problème : tu ne nous le dit pas. Quand tu as une erreur : dis nous le message d'erreur. Si c'est autre chose, dit nous exactement ce que c'est.
Enlèves le @Override dans l'ItemListener : en java 1.5, il ne faut pas le mettre quand on implémente des méthodes d'interface. Je suppose que c'est ça le problème ?
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
d'accord, pour la prochaine fois, je vais etre tres claire
j'ai un autre probleme avec setColumnNumber.
voila le message d'error
The method setColumnNumber(JTable, Integer) is undefined for the type new ItemListener(){}
sachant que j'ai ajouter ce méthode
voila 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 private JPanel SaisieHDPanel(){ JPanel panel = new JPanel(); panel.setBackground(Color.LIGHT_GRAY); SpringLayout layout = new SpringLayout(); panel.setLayout(layout); //panel.setLayout(new GridLayout(3,3)); // Tableau 1 JLabel DiLabel = new JLabel("Demande de "); panel.add(DiLabel); Box hBox1 = Box.createHorizontalBox(); hBox1.add(DiLabel); Integer[] nbColumns = new Integer[10]; for(int i=0; i<nbColumns.length; i++) { nbColumns[i]=i; } liste1 = new JComboBox(nbColumns); panel.add(liste1); Box hBox2 = Box.createHorizontalBox(); hBox2.add(nbColumns); JLabel PLabel = new JLabel(" periode :"); panel.add(PLabel); Box hBox3 = Box.createHorizontalBox(); hBox3.add(PLabel); Box vBox = Box.createHorizontalBox(); vBox.add(hBox1); vBox.add(hBox2); vBox.add(hBox3); panel.add(vBox,BorderLayout.CENTER); Object[][] donnees = {{"D(i)"," "," "," "," "," "," "}}; String[] entetes = {"i","1","2","3","4","5","6"}; final JTable tableau = new JTable(donnees, entetes); panel.add(new JScrollPane(tableau), BorderLayout.CENTER); JComboBox combo = new JComboBox (nbColumns); panel.add(combo, BorderLayout.NORTH); combo.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if ( e.getStateChange()==ItemEvent.SELECTED ) { // prise en compte de la valeur sélectionné dans la combo setColumnNumber(tableau, (Integer)e.getItem()); } } }); SpringUtilities.makeCompactGrid(panel, 2, 1, 10, 0, 50, 10); return panel; } protected void setColumnNumber(DefaultTableModel tableModel, Integer newNumber) { int oldNumber = tableModel.getColumnCount(); if( oldNumber<newNumber ) { // ajout de colonnes for(int i=oldNumber; i<newNumber; i++) { tableModel.addColumn("Column "+(i+1)); } } }
Tu passes tableau en paramètre, et pas le modèle, comme dans mon exemple. Donc tu appelles une méthode setColumnNumber(Jtable, int), qui n'existe pas, d'où le message d'erreur.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
merciii de votre réponse
mais j'ai trouvé un autre problème ici
voila le message d'error :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 protected void setColumnNumber(JTable tableau, Integer newNumber) { int oldNumber = tableau.getColumnCount(); if( oldNumber<newNumber ) { // ajout de colonnes for(int i=oldNumber; i<newNumber; i++) { tableau.addColumn("Column "+(i+1)); } } }
Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problem:
The method addColumn(TableColumn) in the type JTable is not applicable for the arguments (String)
C'est exactement le même problème : tu utilises une JTable là où j'ai utilisé un DefaultTableModel !
Relis mon exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 protected void setColumnNumber(DefaultTableModel tableModel, Integer newNumber) { ... }
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
mais dans mon programme j'utilise tableau qui associer avec JTable !!!!!! je comprends pas bien !!!
merciii , j'ai trouvé la solution
mais j'ai encore un problème au niveau d'affichage, je veux que les lignes doit être constante sa veux dire qu'il ne change pas, il doit etre visible,
et lorsque j'ai voulu écrire ce code j'ai trouvé un problème
je veux que le premier colonne doit etre inchangée pour les donnée après je peux ajouter les colonne avec un Jcombox
Code : Sélectionner tout - Visualiser dans une fenêtre à part final JTable tableau = new JTable(donnees,tableModel);
ou d'écrire
c'est quoi la meilleur solution ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if ( oldNumber==0 && tableModel.getRowCount()==0 ) { String[][] donnees = {{"D(i)"," "," "," "," "," "," "}}; tableModel.addRow(new Object[donnees]); }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager