bonjour,
je début avec SWT et en java en gros![]()
j'aimerai savoir comment peut on sélectionner les valeurs de la célulle sélectionnée, sous forme d'un tableau que je pourai "caster" ensuite
merci de votre aide précieuse
Rocel
bonjour,
je début avec SWT et en java en gros![]()
j'aimerai savoir comment peut on sélectionner les valeurs de la célulle sélectionnée, sous forme d'un tableau que je pourai "caster" ensuite
merci de votre aide précieuse
Rocel
Voici un exemple honteusement inspiré du site eclipse.org qui fait ce que tu veux :
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 import org.eclipse.swt.*; import org.eclipse.swt.graphics.*; import org.eclipse.swt.widgets.*; public class Exemple { /** * @param args */ public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); final Table table = new Table(shell, SWT.BORDER | SWT.V_SCROLL| SWT.FULL_SELECTION); table.setHeaderVisible(true); table.setLinesVisible(true); final int rowCount = 64, columnCount = 4; for (int i = 0; i < columnCount; i++) { TableColumn column = new TableColumn(table, SWT.NONE); column.setText("Colonne " + i); } for (int i = 0; i < rowCount; i++) { TableItem item = new TableItem(table, SWT.NONE); for (int j = 0; j < columnCount; j++) { item.setText(j, "Cellule numéro " + i + "-" + j); } } for (int i = 0; i < columnCount; i++) { table.getColumn(i).pack(); } Point size = table.computeSize(SWT.DEFAULT, 200); table.setSize(size); shell.pack(); table.addListener(SWT.MouseDown, new Listener() { public void handleEvent(Event event) { Point pt = new Point(event.x, event.y); TableItem item = table.getItem(pt); if (item == null) return; for (int i = 0; i < columnCount; i++) { Rectangle rect = item.getBounds(i); if (rect.contains(pt)) { int index = table.indexOf(item); System.out.println("Sélection de la ligne " + index + " - colonne " + i + ":valeur '"+ item.getText() +"'"); } } } }); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } }
merci![]()
j'ai réussis a faire ce qui m'interessait , cependant dans ton exemple, le numéro de la colonne sélectionnée est toujours "0" chez moi, mais je m'en suis passé
+
Rocel
Cool
N'oublie pas de déclarer le sujet comme "résolu" !
Laurent
ok je ne trouvais plus le "Résolu"![]()
je met mon code modifié au cas ou il intéresse quelqu'un, il est plus symple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Table.addListener(SWT.MouseDown, new Listener() { public void handleEvent(Event event) { Point pt = new Point(event.x, event.y); TableItem item = Table.getItem(pt); System.out.println("celulle0: " + item.getText(0)); System.out.println("celulle3: " + item.getText(3)); } });
Partager