图形配对

简介: package peidui; import java.awt.event.*; import java.awt.*;    import javax.swing.*; import javax.
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); //加玻璃板把jp1放到玻璃板上
         this .getGlassPane().setVisible( true ); //玻璃板的显示即jp1的显示
         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;
     }
  
}
相关文章
|
8月前
|
算法
LabVIEW在同一个面板下描绘模拟波形和数字波形
LabVIEW在同一个面板下描绘模拟波形和数字波形
58 0
|
8月前
|
存储
46.编写程序在屏幕上显示如下图形
46.编写程序在屏幕上显示如下图形
57 2
|
8月前
LabVIEW当鼠标悬停在图形曲线上时显示坐标
LabVIEW当鼠标悬停在图形曲线上时显示坐标
114 1
|
8月前
LabVIEW中不同颜色连线的含义
LabVIEW中不同颜色连线的含义
171 2
|
8月前
|
C#
LabVIEW中如何实现任意形状的不规则按键
LabVIEW中如何实现任意形状的不规则按键
81 0
|
机器学习/深度学习 人工智能 图形学
计算机图形学中的图形输入详解
计算机图形学中的图形输入详解
284 2
LabVIEW鼠标移动显示曲线坐标值
实现功能:将鼠标放在波形图曲线上,可以显示出横轴及纵轴的值(坐标值)。 代码思想:注册鼠标移动事件,字符串显示控件显示坐标
186 0
|
数据可视化 数据挖掘
常用 7 大类型图形可视化——组成成分图形
常用 7 大类型图形可视化——组成成分图形
130 0
|
算法
算法练习——(5)输出图形
算法练习——(5)输出图形
109 0