Swing中依据鼠标拖拽来画出矩形的实现方法

画了好久,草要么就是画了,没插掉原先线条,要么就是画第二个的时候第一个也被擦掉,但其实只要调用repaint方法就好了…

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
 class Rect extends JFrame{
  public static void main(String[] args) {
    Rect r=new Rect();
  }
  Draw draw=new Draw();
  public Rect()
  {
    this.add(draw);
    this.addMouseListener(draw);
    this.setSize(500,500);
    this.setLocation(400,400);
    this.setVisible(true);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}
class Draw extends JPanel implements MouseListener {
  int x1 = 0;
  int y1 = 0;
  int x2 = 0;
  int y2 = 0;

  public void paint(Graphics g) {
//    super.paint(g);
    g.setColor(Color.BLUE);
    g.drawRect(x1, y1, x2 - x1, y2 - y1);

  }

  @Override
  public void mouseClicked(MouseEvent e) {

  }

  @Override
  public void mousePressed(MouseEvent e) {
    x1 = e.getX();
    y1 = e.getY();
  }

  @Override
  public void mouseReleased(MouseEvent e) {
    x2 = e.getX();
    y2 = e.getY();
    this.repaint();
  }

  @Override
  public void mouseEntered(MouseEvent e) {

  }

  @Override
  public void mouseExited(MouseEvent e) {
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • jquery缓动swing liner控制动画过程不同时刻的速度

    jQuery效果函数(slideUp().fadeIn()等)和animation()函数都接收另一个用来控制动画过程的速度的参数,这就是缓动(easing),它确定了动画过程不同时刻的速度.例如,将一个元素移过页面的时候,可能让这个元素缓慢地开始移动,然后变得很快,最后随着动画的完成再次慢下来.给动画添加缓动,使得动画在视觉上更有趣且更有动态感. jQuery只包含了两个缓动方法:swing和linear.linear方法提供了一个稳定的动画,以使得动画的每个步骤都是相同的(例如,如果要让一个

  • Swing中依据鼠标拖拽来画出矩形的实现方法

    画了好久,草要么就是画了,没插掉原先线条,要么就是画第二个的时候第一个也被擦掉,但其实只要调用repaint方法就好了- import javax.swing.*; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; class Rect extends JFrame{ public static void main(String[] args) { Rect r=ne

  • jquery实现鼠标拖拽滑动效果来选择数字的方法

    本文实例讲述了jquery实现鼠标拖拽滑动效果来选择数字的方法.分享给大家供大家参考.具体如下: 这是使用jquery ui实现的一个精美实用的效果,可以通过鼠标拖拽滑动效果来选择数字 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns

  • javascript利用canvas实现鼠标拖拽功能

    利用canvas实现鼠标拖拽功能,当在元素上按下鼠标并移动时,元素跟着鼠标移动. 效果: 主要思路: 当鼠标按下时,用isPointInPath方法判断鼠标位置是否在元素上,如果在则鼠标移动时元素跟着移动:当鼠标抬起时,将鼠标移动事件和抬起事件置空. 代码如下: <canvas id="can" width="400" height="400"></canvas> <script type="text/ja

  • js实现百度登录框鼠标拖拽效果

    以百度的登录窗口为例,学习鼠标拖拽效果如何实现,拖拽范围限定以及登录窗口自动居中.学会如何制作弹出窗口特效,了解把元素设置为可拖拽的原理. 知识点: 1.掌握对可拖拽对话框的实现原理 2.了解元素如何触发脚本方法以及如何编写侦听事件 3. 学会设置元素在页面中居中和全屏 注意区别: 1.screenX:鼠标位置相对于用户屏幕水平偏移量,而screenY也就是垂直方向的,此时的参照点也就是原点是屏幕的左上角. 2.clientX:跟screenX相比就是将参照点改成了浏览器内容区域的左上角,该参照

  • Java实现鼠标拖拽移动界面组件

    默认的,Frame或者JFrame自身已经实现了鼠标拖拽标题栏移动窗口的功能. 只是,当你不满意java的JFrame样式,隐藏了标题栏和边框,又或者干脆直接使用JWindow,那你又该怎么实现鼠标拖拽移动窗口的目的呢?最开始,我简单的在mouseDragged方法里frame.setLocation(e.getX(), e.getY()),结果,frame拖拽的时候不停地闪烁,位置在屏幕上不断跳动.后来网上查资料,找到了答案. 这里给一个简单的示例,一看就明白: package com.jeb

  • WPF 在image控件用鼠标拖拽出矩形的实现方法

    今天有小伙伴问我一个问题,在image控件用鼠标拖拽出矩形,本文告诉大家如何使用鼠标画出矩形 做出来的效果先请大家看一下 最简单的方法是在 Down 的时候记录按下的点,在 移动的时候重新计算所在的宽度 先在界面使用一个图片和一个矩形 <Grid x:Name="Grid"> <Image Source="TIM截图20180811150831.png"></Image> <TextBlock HorizontalAlign

  • Vue 实现一个简单的鼠标拖拽滚动效果插件

    最近开源了一个 Vue 组件,还不够完善,欢迎大家来一起完善它,也希望大家能给个 star 支持一下,谢谢各位了. github 地址:github.com/qq449245884- 最近在做一个新的项目,有个需要是这样的: 简单描述一下,就是鼠标拖动页面,整个页面会随着的鼠标的拖拽而移动,如果页面有内容,里面的内容也需要跟着拖动的外层整体移到. 一开始没啥思路,所以就发了个朋友圈,得到的答案挺多的,主要还是用拖拽之类的,但这个拖拽只是单个元素的拖动,我想要的整个视图的拖动. 这里线索又断了.

  • JavaScript实现div的鼠标拖拽效果

    本文实例为大家分享了JavaScript实现div鼠标拖拽效果的具体代码,供大家参考,具体内容如下 实现原理鼠标按下时根据onmousemove事件来动态获取鼠标坐标位置以此来更新div的位置,实现的前提时div要有一个定位效果,不然的话是移动不了它的. HTML <div class="box"></div> CSS样式 .box { position: absolute; width: 200px; height: 200px; background: re

  • C#自定义鼠标拖拽Drag&Drop效果之基本原理及基本实现代码

    目录 一.前言 二.基本原理 1,设计界面 2,拖拽发起方 3,拖拽接收方 4,实际演示 三.自定义拖拽时鼠标效果 1,界面设计 2,拖拽发起方 3,拖拽接收方 4,GiveFeedback实现鼠标样式切换 4,实际演示 四.源码下载 五.总结 一.前言 拖拽(Drag&Drop),属于是极其常用的基础功能.无论是在系统上.应用上.还是在网页上,拖拽随处可见.同时拖拽时的鼠标效果也很漂亮,像这样: 这样: 还有这样: 等等等等.这些拖拽时的鼠标效果,直观又美观.然后,在我们写程序时,程序确实是支

  • vue中的可拖拽宽度div的实现示例

    主要思路 在需要拖拽宽度的区域设置一个div,高度设为 100%,宽度尽量窄一些(也不要太窄,3-6px左右) 在此div上绑定当“鼠标按下”时,触发document绑定“鼠标移动”方法和"鼠标抬起"方法 通过鼠标移动方法不断获取当前鼠标位置,设置需要变化大小div的宽高. 鼠标抬起时取消鼠标移动方法和鼠标抬起方法的绑定. <template>   <div class="container" id="content_box"&

随机推荐