Visualizzazione dei risultati da 1 a 9 su 9

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    36
    Allora ho visto il codice che mi ha generato Netbeans per fare questa cosa e le voci di menu sono create tutte in questo modo:

    javax.swing.tree.DefaultMutableTreeNode treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Pannello di Controllo");
    treeNode1.add(treeNode2);
    Onestamente non capisco a che serve passargli l'oggetto... preso dalla documentazione java:
    //original Tutorial
    book = new DefaultMutableTreeNode(new BookInfo
    ("The Java Tutorial: A Short Course on the Basics",
    "tutorial.html"));
    category.add(book);
    a cosa serve new BookInfo?

    E comunque ammesso che io seguissi questa strada (anche se ancora non ho capito granchè) come faccio poi ad identificare la riga quando l'utente clicca?
    Grazie ancora per il tuo aiuto
    ciao

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da loop4633 Visualizza il messaggio
    Allora ho visto il codice che mi ha generato Netbeans
    Il codice per il popolamento del JTree dovresti (poi) scriverlo tu .... non Netbeans.

    Quote Originariamente inviata da loop4633 Visualizza il messaggio
    Onestamente non capisco a che serve passargli l'oggetto...
    Serve ad avere più informazioni di "contesto" sulla voce che hai selezionato.

    Quote Originariamente inviata da loop4633 Visualizza il messaggio
    preso dalla documentazione java:
    a cosa serve new BookInfo?
    A modellare l'insieme di 2 informazioni: la stringa da visualizzare e un url che viene usato per visualizzare una pagina.

    Se tu facessi banalmente:

    book = new DefaultMutableTreeNode("The Java Tutorial: A Short Course on the Basics");

    Come faresti ad associare "tutorial.html" a tale voce? Riusciresti, certo, ma con del codice un po' fumoso ......

    Quote Originariamente inviata da loop4633 Visualizza il messaggio
    E comunque ammesso che io seguissi questa strada (anche se ancora non ho capito granchè) come faccio poi ad identificare la riga quando l'utente clicca?
    Sempre direttamente dall'esempio del tutorial:

    codice:
    /** Required by TreeSelectionListener interface. */
    public void valueChanged(TreeSelectionEvent e) {
        DefaultMutableTreeNode node = (DefaultMutableTreeNode)
                           tree.getLastSelectedPathComponent();
    
        if (node == null) return;
    
        Object nodeInfo = node.getUserObject();
        if (node.isLeaf()) {
            BookInfo book = (BookInfo)nodeInfo;
            displayURL(book.bookURL);     // <------- QUI vedi che usa facilmente l'informazione extra!
    
      ...........
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    36
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Sempre direttamente dall'esempio del tutorial:

    codice:
    /** Required by TreeSelectionListener interface. */
    public void valueChanged(TreeSelectionEvent e) {
        DefaultMutableTreeNode node = (DefaultMutableTreeNode)
                           tree.getLastSelectedPathComponent();
    
        if (node == null) return;
    
        Object nodeInfo = node.getUserObject();
        if (node.isLeaf()) {
            BookInfo book = (BookInfo)nodeInfo;
            displayURL(book.bookURL);     // <------- QUI vedi che usa facilmente l'informazione extra!
    
      ...........
    Probabilmente non sarai d'accordo però ti dico lo stesso come ho risolto, magari può servire a qualcun altro
    Facendo tree.getLastSelectedPathComponent(); si ottiene esattamente la stringa del menu quindi banalmente basta poi fare uno switch con la stringa piuttosto che con l'indice come facevo io e il problema è risolto
    Grazie mille per il tuo aiuto
    Ciao

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da loop4633 Visualizza il messaggio
    Probabilmente non sarai d'accordo però ti dico lo stesso come ho risolto, magari può servire a qualcun altro
    Facendo tree.getLastSelectedPathComponent(); si ottiene esattamente la stringa del menu quindi banalmente basta poi fare uno switch con la stringa piuttosto che con l'indice come facevo io e il problema è risolto
    In generale non è molto buono. Non dico però che è completamente sbagliato. Se il tuo scenario è molto semplice, con poche voci e soprattutto note a priori, potrebbe anche andare.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    36
    Quote Originariamente inviata da andbin Visualizza il messaggio
    In generale non è molto buono. Non dico però che è completamente sbagliato. Se il tuo scenario è molto semplice, con poche voci e soprattutto note a priori, potrebbe anche andare.
    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.