彩票走势图

JAVA甘特图控件FlexGantt使用教程:树节点(Tree Nodes)设置

原创|使用教程|编辑:郝浩|2013-05-30 15:19:57.000|阅读 688 次

概述:

一个甘特图包含左边和右边2个部分,左边部分就是树表。FlexGantt这个设置让我们创建填充表格数据。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

概述

一个甘特图包含左边和右边2个部分,左边部分就是树表FlexGantt这个设置让我们创建填充表格数据。

树节点(Tree Nodes)设置

  • 任何对象都可以表现在树表中,但是得到一个工作甘特图的最简单方法是使用FlexGantt默认的模型类。默认模型有DefaultGanttChartModel和DefaultGanttChartNode。
    由于我们在基础设置里使用了默认的甘特图构造函数。
    代码:
    DefaultGanttChartModel model = (DefaultGanttChartModel) gc.getModel();
  • 默认模型的根节点是DefaultGanttChartNode的一个实例。
    代码:
    DefaultGanttChartNode root = (DefaultGanttChartNode) model.getRoot();
  • 现在我们添加我们自己的节点到根目录了。我们需要创建关键值,它会显示在树表的关键列中。
    代码:
    DefaultGanttChartNode node1 = new DefaultGanttChartNode("Node 1"); 
    DefaultGanttChartNode node2 = new DefaultGanttChartNode("Node 2"); 
    DefaultGanttChartNode node3 = new DefaultGanttChartNode("Node 3"); 
    node1.setKey("Key 1"); 
    node2.setKey("Key 2"); 
    node3.setKey("Key 3"); 
    root.add(node1); 
    root.add(node2); 
    root.add(node3);
  • 现在我们需要告知模型的根节点的结构发生了变化(新子类)。这样事件就会被模型所触发。这些事件被树表接收,然后更新。
    代码:
    model.nodeStructureChanged(root);
  • 我们添加跟多的节点到node2。
    代码:
    DefaultGanttChartNode node21 = new DefaultGanttChartNode("Node 21"); 
    DefaultGanttChartNode node22 = new DefaultGanttChartNode("Node 22"); 
    DefaultGanttChartNode node23 = new DefaultGanttChartNode("Node 23"); 
    DefaultGanttChartNode node24 = new DefaultGanttChartNode("Node 24"); 
    DefaultGanttChartNode node25 = new DefaultGanttChartNode("Node 25"); 
    node21.setKey("Key 21"); 
    node22.setKey("Key 22"); 
    node23.setKey("Key 23"); 
    node24.setKey("Key 24"); 
    node25.setKey("Key 25"); 
    node2.add(node21); 
    node2.add(node22); 
    node2.add(node23); 
    
  • 最后整个设置完成代码:

    /**
    * Copyright 2006 - 2008
    * Dirk Lemmermann Software & Consulting
    *
    //www.dlsc.com
    */
    package com.dlsc.flexgantt.examples.jumpstart;
    import javax.swing.JFrame;
    import com.dlsc.flexgantt.model.gantt.DefaultGanttChartModel;
    import com.dlsc.flexgantt.model.gantt.DefaultGanttChartNode;
    import com.dlsc.flexgantt.swing.GanttChart;
    import com.dlsc.flexgantt.swing.GanttChartFrame;
    /**
    * One of the steps used for the 'Jumpstart' tutorial. The step will create a
    * couple of tree nodes and add them to the Gantt chart.
    *
    * @author Dirk Lemmermann
    */
    public class Step2_Tree_Nodes {
    /**
    * The application‘s entry point.
    Page
    5
    !
    FlexGantt - Getting Started
    */
    public static void main(String[] args) {
    /*
    * Create a basic Gantt chart, which will use the default Gantt chart
    * model. The default model itself will use the default Gantt chart node
    * as a root object.
    */
    GanttChart gc = new GanttChart();
    /*
    * Retrieve the default model and node from the Gantt chart.
    */
    DefaultGanttChartModel model = (DefaultGanttChartModel) gc.getModel();
    DefaultGanttChartNode root = (DefaultGanttChartNode) model.getRoot();
    /*
    * Add new nodes to the model and trigger an event so that the UI will
    * update its state.
    */
    DefaultGanttChartNode node1 = new DefaultGanttChartNode("Node 1");
    DefaultGanttChartNode node2 = new DefaultGanttChartNode("Node 2");
    DefaultGanttChartNode node3 = new DefaultGanttChartNode("Node 3");
    node1.setKey("Key 1");
    node2.setKey("Key 2");
    node3.setKey("Key 3");
    root.add(node1);
    root.add(node2);
    root.add(node3);
    model.nodeStructureChanged(root); // the event
    /*
    * Add more nodes to node2.
    */
    DefaultGanttChartNode node21 = new DefaultGanttChartNode("Node 21");
    DefaultGanttChartNode node22 = new DefaultGanttChartNode("Node 22");
    DefaultGanttChartNode node23 = new DefaultGanttChartNode("Node 23");
    DefaultGanttChartNode node24 = new DefaultGanttChartNode("Node 24");
    DefaultGanttChartNode node25 = new DefaultGanttChartNode("Node 25");
    node21.setKey("Key 21");
    node22.setKey("Key 22");
    node23.setKey("Key 23");
    node24.setKey("Key 24");
    node25.setKey("Key 25");
    node2.add(node21);
    node2.add(node22);
    node2.add(node23);
    node2.add(node24);
    node2.add(node25);
    model.nodeStructureChanged(node2); // another event
    /*
    * Add the Gantt chart to a specialized frame class. The frame will
    * automatically add a status bar and a glass pane (used for updating
    * the cursor when commands get executed).
    */
    GanttChartFrame<GanttChart> frame = new GanttChartFrame<GanttChart>(
    "Step 2", gc);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    /*
    * Show the frame. The split panel inside the Gantt chart will adjust
    * to the preferred size of the left-hand side (the tree table).
    */
    frame.setVisible(true);
    }
    }

设置后的教程应用程序


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP