salut,
J'aimerais bien utilisé une JXTreeTable dans mon problème mais je ne sais pas trop comment la manipuler surtout au niveau de son modèle.
J'ai trouvé plusieurs d'exemples sur le net, et comme par hasard il n'affichent que l'arboresence des fichiers (FileSystemModel)
Comment faire pour modifier le modèle pour qu'il affiche mes propres objets ???
voici un des codes que j'a trouvé :
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
 
import org.jdesktop.swingx.JXTreeTable;
import org.jdesktop.swingx.treetable.FileNode;
import org.jdesktop.swingx.treetable.FileSystemModel;
 
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
 
public class TableNTreeTableTest extends JPanel  {
	public TableNTreeTableTest() {
		super (new BorderLayout());
 
		final MyModel tree = new MyModel();
 
		JXTreeTable treeTable = new JXTreeTable(tree);
		treeTable.setColumnControlVisible(true);
 
		treeTable.getColumnModel().getColumn(0).setPreferredWidth(1000);
		treeTable.getColumnModel().getColumn(1).setPreferredWidth(10);
		treeTable.getColumnModel().getColumn(2).setPreferredWidth(10);
		treeTable.getColumnModel().getColumn(3).setPreferredWidth(10);
 
		add(new JScrollPane(treeTable));
 
		JButton btnAddToTreeTableBAD = new JButton("Addchild (BAD)");
		btnAddToTreeTableBAD.addActionListener(new
ActionListener() {
			public void actionPerformed(ActionEvent e) {
				tree.addNode(new FileNode(new
File("c:\\boot.ini")), (FileNode) ((FileNode)
tree.getRoot()).getChildAt(0));
			}
		});
		add(btnAddToTreeTableBAD, BorderLayout.NORTH);
 
		JButton btnAddToTreeTableGOOD = new JButton("Addchild (GOOD)");
		btnAddToTreeTableGOOD.addActionListener(new
ActionListener() {
			public void actionPerformed(ActionEvent e) {
				tree.addNode(new FileNode(new
File("c:\\boot.ini")), (FileNode)
tree.getRoot());
			}
		});
		add(btnAddToTreeTableGOOD, BorderLayout.SOUTH);
	}
 
	public static void main(String[] args) {
		JFrame frame = new JFrame("test");
		frame.setContentPane(new TableNTreeTableTest());
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setSize(400, 600);
		frame.setVisible(true);
	}
}
 
class MyModel extends FileSystemModel {
	public void addNode(FileNode value, FileNode parentNode) {
		parentNode.add(value);
		nodesWereInserted(parentNode, new
int[]{parentNode.getChildCount() - 1});
	}
}
Merci..