JTree节点相关信息的储存问题 在SWING中,我在JTREE中的每个节点对应了一个JTABLE,并且这些节点是动态生成的,同时可以修改JTABLE中对应的值。用什么方法将JTABLE里面的值保存在内存中并对应到JTREE中的节点。就是说我切换某个节点的时候,JTABLE就显示该节点的相关信息。分不多,谢谢各位帮忙了…… 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 假设你的树的事件是以下a.AddListener(new Handler() { public void hand(Event event) { 这里, 你可以从event中得到你的事件源, 你的需求中, 也就是可以得到被点击的节点的id(或者其他什么标识) 剩下的相信你可以处理了, 调用你的JTable构造器根据节点id获取数据, 构造一个JTable, 放到该显示的位置. 如果考虑性能, 不妨对你的JTable做一个适当粒度的缓存 }}) 给你一段我写的代码,前几天写过一样的东西,鼠标点击树节点,自动到树据库里找节点对应的JTextPane内容,抛砖引玉吧。public void mousePressed(MouseEvent e) { if (jtree.getSelectionPath()==null) return; selectedPath=jtree.getSelectionPath().toString(); TreePath path = jtree.getPathForLocation(e.getX(), e.getY()); System.out.println("choosed path"+path); if (path == null) { return; } jtree.setSelectionPath(path); String Stringpath=path.toString(); String sql = "select content from Notes where nodeName='" + Stringpath + "'"; try { Statement stmt= DB.con.createStatement(); ResultSet rs=stmt.executeQuery(sql); while(rs.next()){ InputStream in = rs.getBinaryStream("content"); ObjectInputStream obis = new ObjectInputStream(in); oFrame.textPanel.setDocument((StyledDocument)obis.readObject()); } // obis.close(); rs.close(); stmt.close(); } catch (SQLException e1) { // TODO 自动生成 catch 块 e1.printStackTrace(); } catch (Exception e1) { // TODO 自动生成 catch 块 e1.printStackTrace(); } 补充一下,你的类要实现implements MouseListener另外 jtree = new JTree(root);...jtree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); //设置Tree一次只能选择一个节点jtree.addMouseListener(this); 给定10个数字,列出其所有组合!不能重复 长整型想加减的算法 最大匹配子串。 关于大学生的毕业设计 关于Servlet所遇到的问题 那里有JDK Documentation中版的文档下载 百分送上 java中有没有这样一个方法,就是当我的TEXTAREA的内容发生改变时触发一个事件 请教:一个全局对象,new了好多次,是不是导致内存一直增加? jsp连access 一个例子程序的编译错误 类库引入问题 谁能给我介绍下assert的用法,以及解释下一道题目
a.AddListener(new Handler() {
public void hand(Event event) {
这里, 你可以从event中得到你的事件源, 你的需求中, 也就是可以得到被点击的节点的id(或者其他什么标识)
剩下的相信你可以处理了, 调用你的JTable构造器根据节点id获取数据, 构造一个JTable, 放到该显示的位置.
如果考虑性能, 不妨对你的JTable做一个适当粒度的缓存
}
})
public void mousePressed(MouseEvent e) {
if (jtree.getSelectionPath()==null) return;
selectedPath=jtree.getSelectionPath().toString();
TreePath path = jtree.getPathForLocation(e.getX(), e.getY()); System.out.println("choosed path"+path);
if (path == null) {
return;
}
jtree.setSelectionPath(path);
String Stringpath=path.toString();
String sql = "select content from Notes where nodeName='" + Stringpath + "'";
try {
Statement stmt= DB.con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
InputStream in = rs.getBinaryStream("content");
ObjectInputStream obis = new ObjectInputStream(in);
oFrame.textPanel.setDocument((StyledDocument)obis.readObject());
}
// obis.close();
rs.close();
stmt.close();
} catch (SQLException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
} catch (Exception e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
}
jtree = new JTree(root);
...jtree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); //设置Tree一次只能选择一个节点
jtree.addMouseListener(this);