在Graphstream中检索鼠标单击

在Graphstream中检索鼠标单击,graph,mouseevent,java,graphstream,Graph,Mouseevent,Java,Graphstream,因为我找不到任何具体的地方来讨论这个问题,我想我应该在这里发布。。。 我正在使用graphstream 1.1(),一个java图形可视化库,来开发一个数据可视化工具。我需要在节点上检索mouseclick以显示相关数据,但在完成了库教程之后,我仍然不清楚如何执行此操作。有没有人能用更直接的回答来帮助我?我下面的教程位于: 刚刚解决了!我给他们的邮件组发了一封电子邮件。网站上的教程代码缺少一些信息。这三个功能需要公开作废,并且必须添加其他“导入”: import org.graphstream

因为我找不到任何具体的地方来讨论这个问题,我想我应该在这里发布。。。 我正在使用graphstream 1.1(),一个java图形可视化库,来开发一个数据可视化工具。我需要在节点上检索mouseclick以显示相关数据,但在完成了库教程之后,我仍然不清楚如何执行此操作。有没有人能用更直接的回答来帮助我?我下面的教程位于:


刚刚解决了!我给他们的邮件组发了一封电子邮件。网站上的教程代码缺少一些信息。这三个功能需要公开作废,并且必须添加其他“导入”:

import org.graphstream.ui.swingViewer.Viewer;
import org.graphstream.ui.swingViewer.ViewerListener;
import org.graphstream.ui.swingViewer.ViewerPipe;

下面是一个简单的代码,向您展示如何将click事件添加到graphstream库中给定图形的节点。此代码显示如何通过单击节点来更改其背景。颜色是随机选择的:

公共类TutoMouseClacked{
图形;
公共TutoMouseClacked(){
}    
公开募捐{
//用一个节点构建一个简单的图
图形=新的单图形(“TutoMouseClicked”,false,true);
graph.setAttribute(“ui.quality”);
graph.setAttribute(“ui.antialas”);
Node n1=graph.addNode(“n1”);
n1.setAttribute(“ui.style”,“size:100px;”);
查看器=graph.display();
viewer.getDefaultView().setMouseManager(新的TutoMouseManager());
}
公共静态void main(字符串args[]){
新建TutoMouseClicked().run();
}
}
以及实现MouseManager接口的TuToMouseManager类:

公共类TutoMouseManager实现MouseManager{
/**
*此管理器操作所依据的视图。
*/ 
保护视图;
/**
*要根据视图操作修改的图形。
*/ 
保护图形;
受保护的图形元素;
@凌驾
公共void init(GraphicGraph gg,视图){
this.graph=gg;
this.view=视图;
view.addMouseListener(此);
view.addMouseMotionListener(此);
}
@凌驾
公开无效释放(){
view.removeMouseListener(此);
view.removeMouseMotionListener(此);
}
@凌驾
公共无效mouseClicked(MouseEvent me){
element=view.findNodeOrSpriteAt(me.getX(),me.getY());
if(元素!=null){
随机r=新随机();
setAttribute(“ui.style”、“填充颜色:rgb”(+r.nextInt(256)+)”、“+r.nextInt(256)+”、“+r.nextInt(256)+”);
}
}
@凌驾
public void mousePressed(MouseEvent me){
}
@凌驾
公共无效MouseEvent me(MouseEvent me){
}
@凌驾
公共无效mouseenterned(MouseEvent me){
}
@凌驾
public void mouseexitted(MouseEvent me){
}
@凌驾
公共无效鼠标标记(MouseEvent me){
}
@凌驾
public void mouseMoved(MouseEvent me){
}
}

您可以修改此代码以获得所需内容,添加任何其他您想要的鼠标事件:释放鼠标、按下鼠标、拖动鼠标和所有鼠标事件。

您是否在某个地方被发现?你能发布一个更具体的问题,比如错误吗?意外行为?我的代码与教程基本相同。只是在最后更改了函数的声明,使编译成为可能。侦听器似乎没有检测到咔哒声。当我单击时,它应该在控制台上打印节点的id,但什么也没发生。。。也不例外。控制台保持干净。要不要发布您的代码更改?我只是将它们重新声明为“public void”,因为教程上的原始版本没有任何声明-只有功能名称存在。剩下的和教程一样,我很抱歉我的反应太慢了。如果没有粘贴到问题中的代码示例或指向Pastebin之类的链接,这将很难进行故障排除。您可能重新声明了构造函数或误读了他们发布的内容,这些内容本应只是现有函数的一般语句;在根据您提供的内容进行故障排除之前,该教程中有很多内容需要学习
import org.graphstream.ui.swingViewer.Viewer;
import org.graphstream.ui.swingViewer.ViewerListener;
import org.graphstream.ui.swingViewer.ViewerPipe;