导航:首页 > 编程语言 > twaverjava

twaverjava

发布时间:2022-05-09 06:42:33

1. TWaver java chart多组数据显示在同一个页面里

图上只留5个点,添加第6个点的时候,就把第1个点从图中移除,不单单是移除X坐标的显示,还要移除图上对应的点和线。
实际的效果是,图上一个点都没有移除,只是把X轴坐标显示内容给移除了,并且把后面的坐标显示移到前面的点的坐标上去了,这其实是个bug,第一个点的X坐标应该显示为1,不能变。
要移除,就要把坐标显示内容和对应的点和线都一起移除掉。

2. java里边的TWaverUtil.getRandomColor()

TWaverUtil 应该是自定义的吧

看看自定义的包都导入了吗

3. 如何给TWaver中的Node对象加右键菜单项

选中树节点,多出一个按钮,可以用tree.iconsComponentsFunction(用法参考AlarmMappingDemo)。
菜单用Menu.createMenu(用法参考Flex如何定制Menu的Icon)

如果右键点击树节点时,让此节点选中最好,不过现在还没有通过ContextMenuEvent或者MouseEvent获得TreeData的方法,可以考虑先自己继承twaver.Tree,添加如下方法(TWaver Flex 1.5版本将添加):
代码:
public function getTreeDataByContextMenuEvent(event:ContextMenuEvent):TreeData{
var itemRenderer:IListItemRenderer;
var target:DisplayObject = event.mouseTarget;
while (target && target != this) {
if (target is IListItemRenderer && target.parent == listContent) {
if (target.visible) {
itemRenderer = IListItemRenderer(target);
}
break;
}

if (target is IUIComponent){
target = IUIComponent(target).owner;
} else {
target = target.parent;
}
}

if(itemRenderer != null){
return this.getTreeDataByIndex(this.itemRendererToIndex(itemRenderer));
}
return null;
}

public function getTreeDataByMouseEvent(event:MouseEvent):TreeData{
var itemRenderer:IListItemRenderer = this.mouseEventToItemRenderer(event);
if(itemRenderer != null){
return this.getTreeDataByIndex(this.itemRendererToIndex(itemRenderer));
}
return null;
}
默认Menu上的Icon必须通过iconField和iconFunction去指定,但是这两种方式都必须用嵌入资源Class名字去指定Icon,如果想用动态的图片(比如URL)作为Menu的Icon,就必须定制一把MenuItemRenderer。

首先写个类CustomMenuItemRenderer继承MenuItemRenderer,里面增加一个如下变量作为自定义Icon的组件:

1
private var image:UIComponent = new UIComponent();
然后里面重写measure方法(计算MenuItem的宽高):

01
override protected function measure():void {
02
super.measure();
03

04
if (separatorIcon || listData == null) {
05
return;
06
}
07

08
var imageAsset:IImageAsset = Utils.getImageAsset(data.@iconName);
09
if(imageAsset == null){
10
return;
11
}
12
measuredWidth += imageAsset.width;
13
if(imageAsset.height > measuredHeight){
14
measuredHeight = imageAsset.height;
15
}
16
}
重写commitProperties方法(重画并增加Icon,指定Icon宽高):

查看源代码打印帮助

Java代码
override protected function commitProperties():void {
super.commitProperties();

if (separatorIcon || listData == null) {
return;
}

var imageAsset:IImageAsset = Utils.getImageAsset(data.@iconName);
if(imageAsset == null){
return;
}
image.width = imageAsset.width;
image.height = imageAsset.height;
image.graphics.beginBitmapFill(imageAsset.getBitmapData());
image.graphics.drawRect(0, 0, image.width, image.height);
image.graphics.endFill();
if(!this.contains(image)){
this.addChild(image);
}
}

重写updateDisplayList方法(指定Icon的位置,由于Icon在左边,所以super一把后,再移动Labe等的位置):
Java代码
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{
super.updateDisplayList(unscaledWidth, unscaledHeight);

if (separatorIcon || listData == null) {
return;
}

var imageAsset:IImageAsset = Utils.getImageAsset(data.@iconName);
if(imageAsset == null){
return;
}
if(typeIcon){
typeIcon.x += imageAsset.width;
}
if(label){
label.x += imageAsset.width;
}
}

重写measuredIconWidth方法(计算Icon的宽度):
Java代码

1
override public function get measuredIconWidth():Number {
2
var imageAsset:IImageAsset = Utils.getImageAsset(data.@iconName);
3
if(imageAsset == null){
4
return 0 ;
5
}else{
6
var horizontalGap:Number = getStyle("horizontalGap");
7
return imageAsset.width + horizontalGap;
8
}
9
}
最后用自定义的CustomMenuItemRenderer指定Menu的ItemRenderer,注意使用iconName指定icon的名字(这里为TWaver注册图片的名字)。也可以用别的名字,注意把CustomMenuItemRenderer里面的@iconName换一下

1
var menu:Menu = Menu.createMenu(network, myMenuData, false);
2
menu.labelField = "@label";
3
menu.itemRenderer = new ClassFactory(CustomMenuItemRenderer);
4
var point:Point = network.getLogicalPoint(event.mouseEvent);
5
network.callLater(function():void{
6
menu.show(point.x, point.y);
7
});
指定Menu数据的XML文件如下:

查看源代码打印帮助
01
<mx:XML format="e4x" id="myMenuData">
02
<root>
03
<menuitem label="www.servasoftware.com" iconName="databox_icon">
04
<menuitem label="TWaver" type="check" toggled="true">
05
<menuitem label="Java" type="radio" groupName="one"/>
06
<menuitem label="Web" type="radio" groupName="one" toggled="true"/>
07
<menuitem label="Flex" type="radio" groupName="one" iconName="bus_icon"/>
08
<menuitem label="Silverlight" type="radio" groupName="one"/>
09
</menuitem>
10
<menuitem type="separator"/>
11
<menuitem label="2BizBox" iconName="data_icon"/>
12
</menuitem>
13
<menuitem label="www.2bizbox.com"/>
14
<menuitem label="twaver.servasoft.com"/>
15
</root>
16
</mx:XML>
17
</code>

4. 关于MS Chart 绘曲线图、饼图的问题,曲线图不需要事实显示。

TWaver的Demo是很好的学习库,很多东西都可以从Demo里找到。只要从头到尾看一遍了,基本上日常应用都可以解决了。
我这个也是参照TWaver Java Demo里的例子写出来的,看看对你有没有帮助:

package com;

import java.awt.BorderLayout;
import java.awt.Color;

import javax.swing.JFrame;
import javax.swing.JPanel;

import twaver.Node;
import twaver.TDataBox;
import twaver.TWaverUtil;
import twaver.TaskAdapter;
import twaver.TaskScheler;
import twaver.chart.LineChart;

public class LinkChartDemo extends JPanel{
private TDataBox box = new TDataBox();
private LineChart lineChart = new LineChart(box,"Real Time Line Chart",Color.BLACK,Color.WHITE);

public LinkChartDemo() {
final Node fromNode = new Node();
fromNode.setName("NodeA");
fromNode.putChartColor(Color.RED);
for(int i =0;i<20;i++){
fromNode.addChartValue(TWaverUtil.getRandomInt(100));
}
box.addElement(fromNode);

final Node toNode = new Node();
toNode.setName("NodeB");
toNode.putChartColor(Color.GREEN);
for(int i =0;i<20;i++){
toNode.addChartValue(TWaverUtil.getRandomInt(100));
}
box.addElement(toNode);

//set line chart property
lineChart.setYAxisVisible(true);
lineChart.setYScaleTextVisible(true);
lineChart.setXAxisVisible(true);
lineChart.setXScaleTextVisible(true);
lineChart.setInflexionVisible(true);
lineChart.setValueTextVisible(true);

this.setLayout(new BorderLayout());
this.add(lineChart, BorderLayout.CENTER);

TaskScheler.getInstance().register(new TaskAdapter() {
public void run(long clock) {
if (!lineChart.isShowing()) {
return;
}
fromNode.addChartValue(TWaverUtil.getRandomInt(100));
toNode.addChartValue(TWaverUtil.getRandomInt(100));
if (lineChart.valueCount() > 20) {
lineChart.removeHead(1);
}
}
});
}

public static void main(String[] args) {
JFrame frame = new JFrame();
LinkChartDemo demo = new LinkChartDemo();
frame.setContentPane(demo);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1000, 500);
TWaverUtil.centerWindow(frame);
frame.setTitle("Alarm Table");
frame.setVisible(true);
}
}

5. twaver java怎么输出xml

应该是这样吧:http://blog.csdn.net/sun_ru/article/details/51785988

6. JAVA Swing中怎么把树添加到下拉框中

http://twaver.servasoft.com/twaver-java/%E8%AE%A9jtextfield%E6%B7%BB%E5%8A%A0%E2%80%9C%E8%87%AA%E5%8A%A8%E5%AE%8C%E6%88%90%E2%80%9D%E5%8A%9F%E8%83%BD.html

参考这个看看,应该能给你点启示

7. 怎么让HTML5的表格支持后台排序与分页

如果数据库中有几千甚至几万条数据,一下子显示出来也是不现实的,立马就想要了分页。查看TWaver的API,并没有发现表格中提供了分页的功能。算了,还是自己来扩展,想想TWaverJava中分页的功能,HTML5实现起来应该也不算太难,我们需要定义一个PagedTablePane,panel中包含表格和分页栏,分页栏参考了TWaver Java的那种:

仔细看看上面的分页条,其实也不是那么复杂,几个分页按钮加上分页的信息,于是很快就模仿了一个类似的分页栏,先上图:

界面实现起来还是比较容易的,主要的是按钮的操作和分页信息的显示,我们需要定义几个变量:currentPage(当前页)、countPerPage(每页的条数)、pageCount(页数)、count(总数),定义了这几个变量就可以将上图中分页的信息表示出来

8. 请问twaver java如何去掉试用版的水印啊

  1. TWaver是专业的图形界面组件库,提供了跨平台,跨浏览器的多语言平台组件.
    ,提供专业的拓扑组件、地图组件、设备图组件,以及表格、树图、属性表、图表等丰富的通用图形界面组件.

  2. waver-java-4.3,最新版本,需要去水印的请联系twaver@yeah.net

  3. TWaver“一站式”UI组件库,包含网络拓扑图、地图、设备面板图、流程图、各种Chart图表、树、表格及其他通用组件;跨平台、跨设备,适应电信、电力、金融等各行各业;提供强大的API开发接口、完整的文档和demo样例代码,让您的UI界面更专业、更美观、更高效;

  4. 独特的企业级3D呈现引擎,可对各种企业数据进行三维建模并呈现。支持各种3D物体、贴图纹理、灯光、粒子系统、动画系统、场景特效,可直接运行在网页、桌面及各种手持设备上。TWaver3D可视化工具包,结合2D图形组件,为用户带来革命性的全新视觉感受和交互体验;

  5. Mono Design设计平台,包含强大的2D/3D建模工具和丰富的2D/3D模版库,让您在拖拖拽拽中建立复杂的3D图形和应用场景。从电信机房、数据中心、车间厂房,到3D拓扑图/流程图、电信设备、IT设施,乃至家居家具、山水花草人物,包罗万象,为您所用。

9. 如何用BlazeDS前后台数据交互

一般来讲有两种方式:构造XML数据,传送到前台后,通过XMLSerializer反序列化到DataBox中;后台构建Java对象,通过BlazeDS传送到前台后,映射成TWaver Flex的数据对象,然后直接添加到DataBox中。

10. java中两个绘制的两个图形怎么用一跳带箭头的线连接起来(Swing...) 就如visio类似...麻烦了.

gef 或者 jgraph 或者 twaver jar包都可以 不过twaver是付费的

阅读全文

与twaverjava相关的资料

热点内容
linux命令新建文件 浏览:708
长线pdf 浏览:607
程序员电脑支持手写 浏览:414
解压头戴式耳机推荐 浏览:344
纸条app上怎么样看对方主页 浏览:883
编译英语单词怎么写 浏览:249
编译原理和汇编原理的区别 浏览:864
如何给加密的pdf解密 浏览:770
华为盒子时间同步服务器地址 浏览:95
python处理excel乱码 浏览:391
mysql的命令行 浏览:822
jpeg采用什么算法 浏览:701
程序员红轴薄膜 浏览:306
洗脸盆压缩 浏览:780
dpd是什么算法 浏览:156
加密技术中的密钥 浏览:962
qq企业邮箱本地客户端服务器地址 浏览:751
排序算法框架 浏览:852
马扎克qtn编程说明书下载 浏览:188
程序员在国外年龄 浏览:376