package
peidui;
import
java.awt.event.*;
import
java.awt.*;
import
javax.swing.*;
import
javax.swing.border.LineBorder;
public
class
peidui
extends
JFrame
implements
MouseMotionListener,MouseListener{
JLabel j1,j2,j3,j4,j5,j6;
JPanel jp1,jp2;
Point presspoint;
public
static
void
main(String[] args) {
peidui pd=
new
peidui();
}
public
peidui(){
j1=
new
JLabel(
new
ImageIcon(getClass().getResource(
"bike.jpg"
)));
j2=
new
JLabel(
new
ImageIcon(getClass().getResource(
"coffe.jpg"
)));
j3=
new
JLabel(
new
ImageIcon(getClass().getResource(
"dress.jpg"
)));
j4=
new
JLabel(
"咖啡"
,JLabel.CENTER);
j5=
new
JLabel(
"衣服"
,JLabel.CENTER);
j6=
new
JLabel(
"自行车"
,JLabel.CENTER);
jp1=
new
JPanel();
jp2=
new
JPanel();
j1.setPreferredSize(
new
Dimension(
60
,
60
));
j1.setBorder(
new
LineBorder(Color.BLACK));
j2.setPreferredSize(
new
Dimension(
60
,
60
));
j2.setBorder(
new
LineBorder(Color.BLACK));
j3.setPreferredSize(
new
Dimension(
60
,
60
));
j3.setBorder(
new
LineBorder(Color.BLACK));
j4.setBackground(Color.green);
j4.setOpaque(
true
);
j4.setPreferredSize(
new
Dimension(
80
,
80
));
j5.setBackground(Color.green);
j5.setOpaque(
true
);
j5.setPreferredSize(
new
Dimension(
80
,
80
));
j6.setBackground(Color.green);
j6.setOpaque(
true
);
j6.setPreferredSize(
new
Dimension(
80
,
80
));
j1.addMouseListener(
this
);
j1.addMouseMotionListener(
this
);
j2.addMouseListener(
this
);
j2.addMouseMotionListener(
this
);
j3.addMouseListener(
this
);
j3.addMouseMotionListener(
this
);
jp1.add(j1);
jp1.add(j2);
jp1.add(j3);
this
.setGlassPane(jp1);
this
.getGlassPane().setVisible(
true
);
jp1.setOpaque(
false
);
jp2.add(j4);
jp2.add(j5);
jp2.add(j6);
this
.add(jp2,BorderLayout.SOUTH);
this
.setTitle(
"配对游戏"
);
this
.setLocation(
500
,
200
);
this
.setSize(
300
,
300
);
this
.setVisible(
true
);
this
.setResizable(
true
);
this
.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public
void
mouseClicked(MouseEvent arg0) {
}
@Override
public
void
mouseEntered(MouseEvent arg0) {
}
@Override
public
void
mouseExited(MouseEvent arg0) {
}
@Override
public
void
mousePressed(MouseEvent arg0) {
presspoint=arg0.getPoint();
}
@Override
public
void
mouseReleased(MouseEvent arg0) {
if
(check()){
this
.getGlassPane().setVisible(
false
);
j6.setBackground(Color.red);
j6.setText(
"配对成功"
);
j5.setBackground(Color.red);
j5.setText(
"配对成功"
);
j4.setBackground(Color.red);
j4.setText(
"配对成功"
);
}
}
@Override
public
void
mouseDragged(MouseEvent arg0) {
Point curentPoint=arg0.getPoint();
JLabel imgsource=(JLabel)arg0.getSource();
Point labPoint=imgsource.getLocation();
imgsource.setLocation(labPoint.x+(curentPoint.x-presspoint.x), labPoint.y+(curentPoint.y-presspoint.y) );
}
@Override
public
void
mouseMoved(MouseEvent arg0) {
}
public
boolean
check(){
boolean
asc=
true
;
Point a=j1.getLocationOnScreen();
Point b=j6.getLocationOnScreen();
if
(a.x<b.x||a.y<b.y||a.x>b.x+
80
||a.y>b.y+
80
)
{
asc=
false
;
j6.setBackground(Color.green);
}
Point c=j3.getLocationOnScreen();
Point d=j5.getLocationOnScreen();
if
(c.x<d.x||c.y<d.y||c.x>d.x+
80
||c.y>d.y+
80
)
{
asc=
false
;
j5.setBackground(Color.green);
}
Point e=j2.getLocationOnScreen();
Point f=j4.getLocationOnScreen();
if
(e.x<f.x||e.y<f.y||e.x>f.x+
80
||e.y>f.y+
80
)
{
asc=
false
;
j4.setBackground(Color.green);
}
return
asc;
}
}