Правки по работе DnD по передаче объектов.
This commit is contained in:
parent
5d93c8bf38
commit
55364bb619
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="FormPlaneConfig">
|
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="FormPlaneConfig">
|
||||||
<grid id="27dc6" binding="MainPanel" layout-manager="GridLayoutManager" row-count="4" column-count="4" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
<grid id="27dc6" binding="MainPanel" layout-manager="GridLayoutManager" row-count="4" column-count="5" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||||
<margin top="0" left="0" bottom="0" right="0"/>
|
<margin top="0" left="0" bottom="0" right="0"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
<xy x="20" y="20" width="1067" height="400"/>
|
<xy x="20" y="20" width="1067" height="400"/>
|
||||||
@ -335,16 +335,6 @@
|
|||||||
<text value="Доп. цвет"/>
|
<text value="Доп. цвет"/>
|
||||||
</properties>
|
</properties>
|
||||||
</component>
|
</component>
|
||||||
<component id="da776" class="javax.swing.JLabel" binding="LabelTypeWindow">
|
|
||||||
<constraints>
|
|
||||||
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
|
||||||
</constraints>
|
|
||||||
<properties>
|
|
||||||
<horizontalAlignment value="0"/>
|
|
||||||
<horizontalTextPosition value="0"/>
|
|
||||||
<text value="Форма"/>
|
|
||||||
</properties>
|
|
||||||
</component>
|
|
||||||
<grid id="f0d81" binding="PictureBoxPlane" layout-manager="BorderLayout" hgap="0" vgap="0">
|
<grid id="f0d81" binding="PictureBoxPlane" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||||
<constraints>
|
<constraints>
|
||||||
<grid row="1" column="0" row-span="1" col-span="3" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
<grid row="1" column="0" row-span="1" col-span="3" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||||
@ -397,7 +387,7 @@
|
|||||||
</grid>
|
</grid>
|
||||||
</constraints>
|
</constraints>
|
||||||
</vspacer>
|
</vspacer>
|
||||||
<hspacer id="296b8">
|
<hspacer id="f542d">
|
||||||
<constraints>
|
<constraints>
|
||||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false">
|
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false">
|
||||||
<minimum-size width="5" height="-1"/>
|
<minimum-size width="5" height="-1"/>
|
||||||
@ -406,6 +396,15 @@
|
|||||||
</grid>
|
</grid>
|
||||||
</constraints>
|
</constraints>
|
||||||
</hspacer>
|
</hspacer>
|
||||||
|
<hspacer id="2e630">
|
||||||
|
<constraints>
|
||||||
|
<grid row="1" column="4" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false">
|
||||||
|
<minimum-size width="5" height="-1"/>
|
||||||
|
<preferred-size width="5" height="-1"/>
|
||||||
|
<maximum-size width="5" height="-1"/>
|
||||||
|
</grid>
|
||||||
|
</constraints>
|
||||||
|
</hspacer>
|
||||||
</children>
|
</children>
|
||||||
</grid>
|
</grid>
|
||||||
<buttonGroups>
|
<buttonGroups>
|
||||||
|
@ -35,7 +35,6 @@ public class FormPlaneConfig extends JFrame{
|
|||||||
private JPanel GroubBoxSelectedCountWindow;
|
private JPanel GroubBoxSelectedCountWindow;
|
||||||
private JSpinner NumericUpDownCountWindow;
|
private JSpinner NumericUpDownCountWindow;
|
||||||
private JPanel MainPanel;
|
private JPanel MainPanel;
|
||||||
private JLabel LabelTypeWindow;
|
|
||||||
private JLabel LabelSimpleWindow;
|
private JLabel LabelSimpleWindow;
|
||||||
private JLabel LabelRectWindow;
|
private JLabel LabelRectWindow;
|
||||||
private JLabel LabelTriangleWindow;
|
private JLabel LabelTriangleWindow;
|
||||||
@ -47,7 +46,14 @@ public class FormPlaneConfig extends JFrame{
|
|||||||
//событие
|
//событие
|
||||||
Consumer<DrawingPlane> EventAddPlane;
|
Consumer<DrawingPlane> EventAddPlane;
|
||||||
|
|
||||||
public void AddEvent(Consumer<DrawingPlane> ev){
|
//объект для контролирования работы DnD
|
||||||
|
Object dragObject;
|
||||||
|
|
||||||
|
//хранит в себе объект иллюминатор
|
||||||
|
Object enterObject;
|
||||||
|
|
||||||
|
public void AddEvent(Consumer<DrawingPlane> ev)
|
||||||
|
{
|
||||||
EventAddPlane = ev;
|
EventAddPlane = ev;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -86,7 +92,6 @@ public class FormPlaneConfig extends JFrame{
|
|||||||
|
|
||||||
//рамки у Label
|
//рамки у Label
|
||||||
LabelAddColor.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
LabelAddColor.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
||||||
LabelTypeWindow.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
|
||||||
LabelBaseColor.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
LabelBaseColor.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
||||||
LabelModifiedObject.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
LabelModifiedObject.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
||||||
LabelSimpleObject.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
LabelSimpleObject.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
||||||
@ -123,7 +128,6 @@ public class FormPlaneConfig extends JFrame{
|
|||||||
PictureBoxPlane.addMouseListener(defCursor);
|
PictureBoxPlane.addMouseListener(defCursor);
|
||||||
LabelBaseColor.addMouseListener(defCursor);
|
LabelBaseColor.addMouseListener(defCursor);
|
||||||
LabelAddColor.addMouseListener(defCursor);
|
LabelAddColor.addMouseListener(defCursor);
|
||||||
LabelTypeWindow.addMouseListener(defCursor);
|
|
||||||
|
|
||||||
PanelBlack.addMouseListener(drag);
|
PanelBlack.addMouseListener(drag);
|
||||||
PanelPurple.addMouseListener(drag);
|
PanelPurple.addMouseListener(drag);
|
||||||
@ -140,12 +144,20 @@ public class FormPlaneConfig extends JFrame{
|
|||||||
LabelRectWindow.addMouseListener(drag);
|
LabelRectWindow.addMouseListener(drag);
|
||||||
LabelTriangleWindow.addMouseListener(drag);
|
LabelTriangleWindow.addMouseListener(drag);
|
||||||
|
|
||||||
|
//передача объекта через событие
|
||||||
ButtonAddObject.addActionListener(e -> {
|
ButtonAddObject.addActionListener(e -> {
|
||||||
EventAddPlane.accept(_plane);
|
EventAddPlane.accept(_plane);
|
||||||
dispose();
|
dispose();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//лямбда-выражение для закрытия формы
|
||||||
ButtonCancel.addActionListener(e -> dispose());
|
ButtonCancel.addActionListener(e -> dispose());
|
||||||
|
|
||||||
|
AdditWindowDropObject(LabelSimpleWindow);
|
||||||
|
AdditWindowDropObject(LabelRectWindow);
|
||||||
|
AdditWindowDropObject(LabelTriangleWindow);
|
||||||
|
|
||||||
|
AdditWindowDropTarget(PictureBoxPlane);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Drop(JComponent dropItem)
|
public void Drop(JComponent dropItem)
|
||||||
@ -215,27 +227,84 @@ public class FormPlaneConfig extends JFrame{
|
|||||||
revalidate();
|
revalidate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(dropItem instanceof JLabel label && LabelTypeWindow.getMousePosition() != null && _plane!=null)
|
|
||||||
{
|
|
||||||
if(label == LabelSimpleWindow)
|
|
||||||
{
|
|
||||||
_plane.SetTypeWindow((int)NumericUpDownCountWindow.getValue(), new DrawingAirplaneWindow());
|
|
||||||
Draw(_plane);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(label == LabelRectWindow)
|
void AdditWindowDropTarget(JComponent obj)
|
||||||
{
|
{
|
||||||
_plane.SetTypeWindow((int)NumericUpDownCountWindow.getValue(), new DrawingRectAirplaneWindow());
|
obj.addMouseListener(new MouseAdapter() {
|
||||||
Draw(_plane);
|
@Override
|
||||||
|
public void mouseEntered(MouseEvent e) {super.mouseEntered(e);
|
||||||
|
Paddle_DragEnter(obj);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void mouseExited(MouseEvent e) {super.mouseExited(e);
|
||||||
|
DragExit();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if(label == LabelTriangleWindow)
|
void AdditWindowDropObject(JComponent obj)
|
||||||
{
|
{
|
||||||
_plane.SetTypeWindow((int)NumericUpDownCountWindow.getValue(), new DrawingTriangleAirplaneWindow());
|
obj.addMouseListener(new MouseAdapter() {
|
||||||
Draw(_plane);
|
@Override
|
||||||
|
public void mousePressed(MouseEvent e) {super.mousePressed(e);
|
||||||
|
Paddle_MouseDown(obj);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void mouseReleased(MouseEvent e) {super.mouseReleased(e);
|
||||||
|
Paddle_DragDrop();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
repaint();
|
void Paddle_MouseDown(Object sender)
|
||||||
|
{
|
||||||
|
IAdditionalDrawingObject windows;
|
||||||
|
switch (((JLabel)sender).getText()){
|
||||||
|
case "Простая":
|
||||||
|
windows = new DrawingAirplaneWindow();
|
||||||
|
break;
|
||||||
|
case "Треугольная":
|
||||||
|
windows = new DrawingTriangleAirplaneWindow();
|
||||||
|
break;
|
||||||
|
case "Квадратная":
|
||||||
|
windows = new DrawingRectAirplaneWindow();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
enterObject = windows;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Paddle_DragEnter(Object sender)
|
||||||
|
{
|
||||||
|
if(enterObject != null && IAdditionalDrawingObject.class.isAssignableFrom(enterObject.getClass()) && _plane != null)
|
||||||
|
{
|
||||||
|
setCursor(new Cursor(Cursor.HAND_CURSOR));
|
||||||
|
dragObject = sender;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Paddle_DragDrop()
|
||||||
|
{
|
||||||
|
if(dragObject == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_plane.SetTypeWindow((int)NumericUpDownCountWindow.getValue(), (IAdditionalDrawingObject)enterObject);
|
||||||
|
DragExit();
|
||||||
|
enterObject = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DragExit()
|
||||||
|
{
|
||||||
|
if(enterObject != null && dragObject != null)
|
||||||
|
{
|
||||||
|
setCursor(Cursor.getDefaultCursor());
|
||||||
|
Draw(_plane);
|
||||||
|
dragObject = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user