📄 ttree.java
字号:
package zichan;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import java.awt.Rectangle;
import javax.swing.tree.DefaultMutableTreeNode;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.GridBagLayout;
import java.awt.*;
import javax.swing.JTree;
import javax.swing.JScrollPane;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.event.TreeSelectionListener;
import javax.swing.event.TreeSelectionEvent;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
class Branch{
DefaultMutableTreeNode r;
public Branch(String[] data,int cnt,int start){
r=new DefaultMutableTreeNode(data[start++]);
for(int i=0;i<cnt;i++)
r.add(new DefaultMutableTreeNode(data[start++]));
}
public DefaultMutableTreeNode node(){
return r;
}
}
public class TTree extends JPanel implements ActionListener,TreeSelectionListener {
int cnt;
JTree jTree;
TreeModle tdm;
DefaultMutableTreeNode root,child;
public String connditon;
public boolean isleaf;
public TTree() {
Container cp = this;
cp.setLayout(new BorderLayout());
tdm=new TreeModle();
root = new DefaultMutableTreeNode("类别");
jTree = new JTree(root);
jTree.addTreeSelectionListener(this);
//root.add(parent);
//parent.add(Leafe);
cp.add(new JScrollPane(jTree), BorderLayout.CENTER);
JButton jBtn = new JButton("查询类别");
jBtn.addActionListener(this);
JPanel p = new JPanel();
p.add(jBtn);
cp.add(p, BorderLayout.SOUTH);
this.setVisible(true);
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public void actionPerformed(ActionEvent e) {
//需要大类个数,cnt
int i = 0;
int j = 0;
int count = 0;
cnt = tdm.selCateCnt(); //得到大类个数
//需要小类个数
int[] scnt = new int[cnt];
tdm.selSubCateCnt(scnt);
//需要各个大类和其中各个小类的名称
//cnt=2,scnt[0]=2,scnt[1]=2
for (i = 0; i < cnt; i++)
count = count + scnt[i] + 1;
//假使大类个数为2
//第一次count=0+2+1==3
//第二次count=3+2+1==6
String[] data = new String[count];
//保存各节点名字数组
tdm.selCate(data, scnt, cnt);
//data[0]="交通工具"
//、以上面各个名称,生成树
i = 0;
j = 0;
root.removeAllChildren(); //清空
while (i < cnt) { //cnt=2,i=0,1
Branch b = new Branch(data, scnt[i], j);
//i=0时,Branch(data,2,0)
//i=1时,Branch(data,2,3)
child = b.node();
j = j + scnt[i] + 1;
//实现指向大类的名称
i++;
root.add(child);
}
}
public void valueChanged(TreeSelectionEvent e){
DefaultMutableTreeNode node=( DefaultMutableTreeNode)
jTree.getLastSelectedPathComponent();
if(node==null){
return;
}
Object nodeInfo=node.getUserObject();
connditon=nodeInfo.toString();
isleaf=node.isLeaf();
Share.condition=connditon;
Share.isleaf=isleaf;
}
private void jbInit() throws Exception {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -