Avatar billede allannielsen Nybegynder
22. juli 2002 - 20:39 Der er 2 kommentarer

Links i tree komponent

Jeg er ved at lave en tree komponent der skal kunne holde styr på links, problemet ligger i at jeg ikke kan finde ud af at lave linksene.
Normalt vis kan jeg godt finde ud af at lave en link i java, men jeg ved ikke hvordan jeg skal få det til at virke i denne tilfælde.

her er hele kildekoden til java delen (den nye java version er krævet for at kunne compaile):

// Filnavn = TreeExpandEventDemo.java
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.awt.*;
import java.util.Vector;
import java.applet.*;
import java.net.*;

public class TreeExpandEventDemo extends JApplet {
    DemoArea demoArea;
    Graphics g;
           
    //JTextArea textArea;
    final static String newline = "\n";

    public void init() {
        GridBagLayout gridbag = new GridBagLayout();
        GridBagConstraints c = new GridBagConstraints();
        JPanel contentPane = new JPanel();
        contentPane.setLayout(gridbag);

        c.fill = GridBagConstraints.BOTH;
        c.gridwidth = GridBagConstraints.REMAINDER;
        c.weightx = 1.0;
        c.weighty = 1.0;

        c.insets = new Insets(1, 1, 1, 1);
        demoArea = new DemoArea();
        gridbag.setConstraints(demoArea, c);
        contentPane.add(demoArea);

        setContentPane(contentPane);
    }

    class DemoArea extends JScrollPane{
        Dimension minSize = new Dimension(100, 100);
        JTree tree;
        String navn, link;
        int n, type;
   
        public DemoArea() {
            TreeNode rootNode = createNodes();
            tree = new JTree(rootNode);
           

            setViewportView(tree);
        }

        private TreeNode createNodes() {
           
            int i = 0;
            String j = new String();
            Vector data = new Vector();
            String test = "a1";
           
            while ( (j = getParameter(String.valueOf(i))) != null) {
                data.addElement(j);
                i++;
            }
           
            DefaultMutableTreeNode a[] = new DefaultMutableTreeNode[100];
            a[0] = new DefaultMutableTreeNode();
           
            //her bliver træet bygget
           
            for(i = 0; i < data.size(); i++){
                fortolk(String.valueOf(data.elementAt(i)));
               
                if(n == 0){
                    a[0] = new DefaultMutableTreeNode(navn);
                }else{
                    if(type == 0){
                        //Mapper
                        a[n] = new DefaultMutableTreeNode(navn);
                        a[(n-1)].add(a[n]);
                    }else{
                        //Links
                        a[n] = new DefaultMutableTreeNode(new Link_maskinen(navn,link));
                        a[(n-1)].add(a[n]);
                    }
                }
            }
           
            return a[0];
        }
       
       
        private class Link_maskinen {
            public String navnn;
            public Link_maskinen(String navn, String link) {
                navnn = navn;

               
                //Her havde jeg tænkt mig der skulle være noget til at lave linket med
               
               
            }
   
            public String toString() {
                return navnn;
            }
        }
       
       
        private void fortolk(String str){
           
            int i, ii, antal;
       
            for (i = 1; i < str.length(); i++){
                if (str.substring(i-1,i).equalsIgnoreCase("[")){
                    String j = " ";
                    for(i = i;!str.substring(i,i+1).equalsIgnoreCase("]");i++){
                        j = j + str.substring(i,i+1);
                    }
                    j = j.trim();
                    str = j;
                }
            }
            for (i = 1, antal = 0; i <= str.length(); i++){if (str.substring(i-1,i).equalsIgnoreCase(";")){antal++;}}
            String strr[] = new String[antal+1];
            //String strr[] = new String[4];
            for (i = 1, ii = 0; i <= str.length();i++){
                if(str.substring(i-1,i).equalsIgnoreCase(";")){
                    i++;
                    ii++;
                }
                if (strr[ii] == null){
                    strr[ii] = str.substring(i-1,i);
                }else{
                    strr[ii] = strr[ii] + str.substring(i-1,i);
                }
            }
            n = Integer.parseInt(strr[0]);
            type = Integer.parseInt(strr[1]);
            navn = strr[2];
            if(type == 1){
                link = strr[3];
            }
        }
    }
}


Her er html dokumentet der bruges til at vise siden:

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<BODY>
<applet code = "TreeExpandEventDemo.class" height = 500 width = 800 VIEWASTEXT>
<param name="0"                    value="[0;0;rod]">   
    <param name="1"                value="[1;0;aa]">
        <param name="2"            value="[2;0;aaa]">
            <param name="3"        value="[3;1;aaaa;link-aaaa]">
            <param name="4"        value="[3;1;aaab;link-aaab]">
        <param name="5"            value="[2;1;aab;link-aab]">
    <param name="6"                value="[1;0;ab]">
        <param name="7"            value="[2;0;aba]">
            <param name="8"        value="[3;1;abaa;link-abaa]">
            <param name="9"        value="[3;1;abab;link-abaa]">
        <param name="10"        value="[2;1;abb;link-abb]">
        <param name="11"        value="[2;1;abc;link-abc]">
<param name="0"                    value="[0;0;rod2]">   

</applet>

</BODY>
</HTML>
Avatar billede code0.dk Nybegynder
22. juli 2002 - 21:29 #1
Tjek - denne side - der er det ret godt forklaret
http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html
Code0.dk
Avatar billede allannielsen Nybegynder
22. juli 2002 - 21:48 #2
det er et eksempel fra denne side jeg har brugt, men jeg kan ikke få det til at virke alligevel
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester