我制作了一个模拟逻辑门的程序,但我的逻辑门出现问题,就像JLabel
添加到我的绘图画布一样。当我放下连接到电线的两个输入(例如开关)时,单击开关将改变连接到它的电线的颜色。通过仅单击一个开关,两条不同的连接线正在改变颜色。
我只是想知道当您单击并放下JLabel
将是我的 x1 时该怎么做,下一次单击并放下JLabel
将是现在的 x2。你怎么做呢?
我制作了一个模拟逻辑门的程序,但我的逻辑门出现问题,就像JLabel
添加到我的绘图画布一样。当我放下连接到电线的两个输入(例如开关)时,单击开关将改变连接到它的电线的颜色。通过仅单击一个开关,两条不同的连接线正在改变颜色。
我只是想知道当您单击并放下JLabel
将是我的 x1 时该怎么做,下一次单击并放下JLabel
将是现在的 x2。你怎么做呢?
1)创造由个体组成的小 个体并使它们独一无二。groups
elements
例如:两个JLabels
作为两个switches
,Swing Line
作为wire
。这将是您的一个逻辑单元组合成一个。您将有多个这样的组。所有组都是唯一的。
2)一旦你确定了元素及其各自的组,你就可以通过检测画布元素被丢弃的位置来识别画布中的dropping elements
新元素。如果new element
被放在一个Group
然后add
那个元素到组中。然后确定这个新单元正在被删除to
或删除的元素。around
例如:如果new JLable
被任何有效 Swing Line
的附近丢弃,则将其JLable
与 that连接起来line
。因此,您将Switch
加入wire
.
为什么选择集团方式?
通过将元素分组为小组,您可以根据分组设置条件。诸如元素 from 之类的条件group x
不应与元素 from 连接group y
。如果您想设置,这种分组方法将为您提供灵活性logical joining conditions
。
技术细节:
元素坐标将帮助您检测where
或on what
删除新元素
如何在 java 中做 Drap-Drop?
Java Swing 支持拖放、剪切、粘贴等操作。
请参阅此获取完整指南 >> http://docs.oracle.com/javase/tutorial/uiswing/dnd/index.html