1 pièce(s) jointe(s)
Petite question sur l'héritage
Bonjour!
J'ai une petite question sur un point que j'ai pas tout à fait saisi :
J'ai une class qui hérite de la classe JFrame pour créer une fenêtre:
Code:
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 Viewer extends JFrame {
private JPanel westPanel;
private JTree tree;
/** Creates a new instance of Viewer */
public Viewer() {
setSize(640,480);
setLayout(new BorderLayout());
setTitle("Viewer");
initComponents();
}
public void initComponents() {
westPanel = new JPanel();
westPanel.setBackground(Color.BLACK);
tree = new JTree(new TreeView(this, sampleTree()));
westPanel.add(tree);
}
/* main */
public static void main(String[] args) {
new Viewer().show();
}
} |
Donc voilà, je crée une fenêtre, je l'initialise, et dedans je voudrais mettre un arbre qui serait créé a partir d'une autre classe (TreeView)
Code:
1 2
|
JTree jTree = new JTree(new TreeView(this, sampleTree())); |
Voici ma classe TreeView :
Code:
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
|
public class TreeView implements TreeNode {
private Viewer viewer;
private DefaultMutableTreeNode treeNode;
public TreeView (Viewer viewer, DefaultMutableTreeNode treeNode) {
super();
this.treeNode = treeNode;
this.viewer = viewer;
}
/* Generate a random tree */
public DefaultMutableTreeNode sampleTree() {
DefaultMutableTreeNode root = new DefaultMutableTreeNode("root",true);
DefaultMutableTreeNode temp = new DefaultMutableTreeNode("temp");
Random r = new Random();
int i = r.nextInt(5)+2;
int j;
for (int x = 1; x <= i; x++) {
j = r.nextInt(5)+2;
temp = root.getFirstLeaf();
for (int y = 1; y <= j; y++) {
temp.add(new DefaultMutableTreeNode(x+"."+y));
}
}
return root;
}
} |
Quand je lance mon programme, j'obtiens ceci :
http://www.developpez.net/forums/att...1&d=1247668802
Il m'affiche l'adresse ou je sais pas quoi de l'arbre, et pas l'arbre créé par la méthode sampleTree() !
Ou ais-je faux ? :O