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>