`
yutianapple
  • 浏览: 32520 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

A我自己写的connection连线算法Connection————4

阅读更多
/**
* 实现对图形的移动进行监听
*
* @author
*/
static class Dragger extends MouseMotionListener.Stub implements
MouseListener {
int clickFrigure = 0;

public Dragger(IFigure figure) {
figure.addMouseMotionListener(this);

figure.addMouseListener(this);

}

// 声明一个鼠标坐标对象(鼠标点击芯片拖拉时候记录老坐标值)
static Point chipLast;

// 声明一个鼠标坐标对象(鼠标点击银角连线时候记录老坐标值)
static Point roleLost;

static Point lastPoint;

Point p1;

/**
* 鼠标双击
*/
public void mouseDoubleClicked(MouseEvent e) {

}

/**
* 鼠标压下
*/
public void mousePressed(MouseEvent e) {
System.out.println("鼠标压下: "
+ e.getSource().getClass().getName());

// 点击第二次时候清空虚线(这里clickNumber点击第二次时候还没有加)
if (clickNumber == 1 && conn1 != null) {
panel.remove(conn1);
conn1 = null;
}

// 如果鼠标点击是芯片
if (e.getSource() instanceof ChipFont) {
chipLast = e.getLocation();
lastPoint = chipLast;
System.out.println(e.getSource() + "  点击图形类型");
ChipFont figure2 = null;

// 设置点击的图形是芯片
clickFrigure = 1;
figure2 = (ChipFont) e.getSource();
// 鼠标压下获得压下的芯片的芯片槽的坐标
p1 = figure2.getChip().getBd().getLocation();

}

// 如果鼠标点击是芯片
else if (e.getSource() instanceof Role) {
clickFrigure = 0;
// 记录鼠标点击银角的次数
clickNumber++;

System.out.println("鼠标点击第" + clickNumber + "次+*****   ");

if (clickNumber == 1) {
// 记录鼠标点击的第一次银角的对象
sourceRole = (Role) e.getSource();
// 记录鼠标点击的第一次银角的坐标
roleLost = e.getLocation();
// 创建临时银角对象 辨别是否第二次点击是自己
tempSelectRole = sourceRole;

// panel.add(conn1);

}
} else if (e.getSource() instanceof IFigure) {

System.out.println("IFigure   ----");
}
}
分享到:
评论

相关推荐

    connection连线样式走线方式

    标题中的“connection连线样式走线方式”主要涉及的是在图形用户界面(GUI)或软件开发中,特别是在绘制流程图、电路图或者数据流图时,如何处理元素之间的连接线,即连线的样式和布局方法。这通常涉及到图形库或者...

    android 连连看算法

    根据提供的信息,我们可以深入探讨“连连看”游戏中的核心算法,并着重分析其在Android平台上的实现方式。连连看是一款非常受欢迎的休闲益智类游戏,玩家的目标是通过连接两个相同图案的方块来消除它们,而连接的...

    字段级连线字段级连线字段级连线字段级连线

    在IT行业中,字段级连线(Field-Level Connection)是一种常见的数据可视化技术,特别是在图形库和图论应用中。这里提到的“字段级连线字段级连线字段级连线字段级连线”可能是由于重复,我们可以理解为对这一概念的...

    jsplumb连线的demo

    4. **事件绑定**:可能有事件监听器,如`jsPlumb.bind('connection', function() {...})`,处理连接的创建和变化。 5. **动态创建和删除连接**:通过调用jsPlumb的API方法,如`jsPlumb.connect()`和`jsPlumb.detach...

    最小覆盖圆.pdf 英文版

    ### 最小覆盖圆:算法与应用 #### 引言 最小覆盖圆问题,作为一个核心的计算几何问题,涉及寻找一个圆,使其能够包含平面上给定的所有点,并且该圆的半径尽可能小。这个问题在设施选址、信号覆盖优化、以及更广泛...

    jsplumb源码

    jsPlumb有丰富的事件系统,如`connection`、`connectionDetached`、`endpointAdded`等,可以监听这些事件进行自定义处理,如保存状态、更新UI等。通过`jsPlumb.bind()`方法注册事件处理器。 5. **布局与动画**: ...

    连连看游戏(Java)

    例如,可以创建一个`ChessBoard`类来表示棋盘,`ChessPiece`类来表示棋子,`Connection`类来表示棋子间的连线。 2. **图形用户界面(GUI)**:连连看游戏需要一个友好的交互界面,这可以通过Java的Swing或JavaFX库...

    流程图设计系统

    这涉及到复杂的算法,如层次遍历、拓扑排序等,以确保连线无交叉、节点分布均匀。 8. **调试与测试** 系统经过多次调试,确保了功能的完整性和运行的稳定性。VB的调试工具,如断点、步进执行、变量观察等,都对...

    FPGA之Verilog编程.zip_FPGA verilog_attachedxrz_fpga_middledqm_veril

    在FPGA开发中,Verilog常用于实现算术逻辑单元(ALU)、存储器(如RAM、ROM)、通信协议(如SPI、UART)、数字信号处理算法、嵌入式处理器接口等。通过不断练习和项目实践,可以提升对Verilog和FPGA的理解,从而设计...

    Delphi7开发连连看小游戏

    这需要实现一个算法来检查相邻方块,以及判断连线是否符合规则。 3. **计时系统**:可以使用TTimer组件来实现,设置合适的间隔,每次触发事件时更新游戏时间显示。 4. **得分计算**:每次成功消除一对方块,得分增加...

    局域网五子棋设计

    - 实现胜负判断算法,当一方形成五子连线时判定为胜,无五子连线且棋盘满时判定为和棋。 3. **网络通信**: - 制定通信规范,包括消息结构、数据编码和错误处理等。 - 使用VB中的`Winsock`控件进行TCP/IP通信。`...

    eCooeModel2010培训_流程设计.pdf

    如Ctrl+A用于全部选定、Ctrl+C和Ctrl+V分别用于复制和粘贴环节、Ctrl+X用于剪切环节、Ctrl+Z用于撤销当前修改、Del用于删除选定对象、Alt+光标键用于微距移动环节、F2用于显示或隐藏连线信息。 9. eCooeModel2010...

    jsplumb 说明

    JSPlumb社区开发了许多插件,如jQuery、React、Vue等框架的集成插件,以及图谱布局算法插件。这些插件可以帮助开发者更轻松地在特定的前端环境中使用JSPlumb。 ### 8. 示例与文档 为了更好地理解和使用JSPlumb,...

    JsPlumb:所有 JsPlumb 示例

    JsPlumb 是一个基于 JavaScript 的库,专为创建可视化连接器(或“连线”)而设计。这个库利用 HTML5 的 canvas、SVG 或 VML 元素,能够在网页上动态绘制和管理连接线,从而在不同元素之间建立关系。JsPlumb 的应用...

Global site tag (gtag.js) - Google Analytics