首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于在JFrame上单击鼠标时添加矩形

在JFrame上单击鼠标时添加矩形,可以通过以下步骤实现:

  1. 创建一个继承自JFrame的类,作为主窗口。
  2. 在主窗口类中,添加一个继承自JPanel的内部类,用于绘制矩形。
  3. 在内部类中,重写paintComponent方法,在该方法中使用Graphics类的drawRect方法绘制矩形。
  4. 在内部类中,添加MouseListener监听器,重写mouseClicked方法。
  5. 在mouseClicked方法中,获取鼠标点击的坐标,并根据坐标绘制矩形。
  6. 将内部类添加到主窗口中,并设置主窗口可见。

下面是一个示例代码:

代码语言:txt
复制
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class RectangleFrame extends JFrame {
    private JPanel panel;

    public RectangleFrame() {
        panel = new RectanglePanel();
        add(panel);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(500, 500);
        setVisible(true);
    }

    private class RectanglePanel extends JPanel {
        private int x, y, width, height;

        public RectanglePanel() {
            addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    x = e.getX();
                    y = e.getY();
                    width = 100;
                    height = 100;
                    repaint();
                }
            });
        }

        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.drawRect(x, y, width, height);
        }
    }

    public static void main(String[] args) {
        new RectangleFrame();
    }
}

这个示例代码实现了在JFrame上单击鼠标时添加一个固定大小的矩形。当鼠标点击时,会获取鼠标点击的坐标,并在该坐标处绘制一个矩形。可以根据实际需求进行修改和扩展。

腾讯云相关产品推荐:

  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版(CDB):https://cloud.tencent.com/product/cdb
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 人工智能(AI):https://cloud.tencent.com/product/ai
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke

请注意,以上链接仅供参考,具体产品选择应根据实际需求和项目要求进行评估。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【干货】20K以上的高薪Java必掌握的基础知识点(二)

    83、虽然Java 程序结束自动关闭所有打开的流,但是当我们使用完流后,显式地关闭 任何打开的流仍是一个良好的习惯。...94、Java程序中可以向容器添加组件,一个容器可以使用 add() 方法将组件添加到该容器中。...107、使用 CardLayout 布局的容器可以容纳多个组件,但实际同一刻容器只能从这些组件中选出一个来显示。...110、当用户与GUI 交互,比如移动鼠标、按下鼠标键、单击Button 按钮、文本框内输入文本、选择菜单项或者关闭窗口,GUI 会接受到相应的事件 。...119、使用MouseListener接口处理鼠标事件,鼠标事件源发生的鼠标事件包括,按下鼠标键、释放鼠标键、单击 鼠标键、鼠标进入和鼠标退出。

    1.5K71

    Fabric.js 右键菜单

    案例代码放了文末~ 环境和版本 Chrome浏览器版本:96.0.4664.45 Fabric.js版本:4.6.0 思路 先说说需求: 右键单击元素,弹出菜单; 弹出菜单分4种情况(菜单在鼠标右侧...,菜单在鼠标左侧,菜单在鼠标上方,菜单在鼠标下方); 左键单击画布其他地方,隐藏菜单; 实现思路: 创建画布; 创建 “菜单” 的DOM元素; 去官网查找 “右键相关事件”; 右键单击元素,根据鼠标离画布边缘的距离...,计算菜单要显示的位置; 左键单击画布,隐藏菜单; 实现 查文档 在上面的思路中,其实难点只有 “右键相关事件” 。... 对象相关的文档 里,关于鼠标的事件好像没有右键,稍微沾边点的就是鼠标点击(这里我选了 mousedown)。...init() { // 省略部分代码...... // 将矩形添加到画布中 canvas.add(rect1, rect2, circle, triangle) // 按下鼠标

    7.1K10

    关于C#界面开发winform与SharpGL结合鼠标OpenGLControl绘图区域显示坐标移动消息响应(c#鼠标单独某个控件的消息响应)

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11773260.html     因为很多时候我们开发画图之类的工具鼠标移动之类的,都只想在绘图区域内响应...那么如何单纯的只OpenGLControl控件区域鼠标响应呢?     ...我觉得这点c#的界面开发就比MFC好太多了       c#下,我们只需要将鼠标移动到OpenGLControl控件边缘,右键属性 ? 然后右边的属性栏里点击事件 ?  ...结果测试:鼠标黑色OpenGLControl控件区域移动  右边的编辑框 不断的打印坐标,其他区域鼠标移动无反应 ?  ...当然啦 其他控件也是这样设置的  所以这个教程适用于绝大多数控件单独对鼠标的响应或者键盘其他的响应 若有兴趣交流分享技术,可关注本人公众号,里面会不定期的分享各种编程教程,和共享源码,诸如研究分享关于

    1.8K30

    盘点服装设计所经常性使用的软件-----ET(中篇)

    我们还可以将自己所制作的样本导入到系统中,以备以后不时之需,首先我们需要选择附件登录,如图: 然后选中我们要添加到附件的版型,一般选中就是红色的状态,如图: 当版型为红色,我们右击鼠标,然后就会弹出附件对话框...,如图: 按照上面要求即可将版型添加到附件中去,以后我们制衣就可以调用我们自己的版型了。...六、添加标注 我们可以版型中添加适量的标注来提醒打样的师傅有哪些需要注意的,所以标注很有必要,我们只需要点击ABC图标,如图: 点击ABC后然后按住左键拖动一个线段,然后就会弹出文字输入对话框,如图...首先我们来创建一个矩形,然后我们选中矩形需要更改形状的那一端,然后框选它,此时那一端被选中的会是红色线段,如图: 不过此时是无法它上面进行操作的,我们需要按住Shift键然后一个个点击,然后每个点击处都会出现一个小点点...如图: 然后我们框选那一端,即为红色,用鼠标按住这些绿色的点然后往下拉,即可。

    53600

    Matplotlib 中文用户指南 7.1 交互式导航

    它们用于之前定义的视图之间来回浏览。 它们没有意义,除非你已经使用平移和缩放按钮访问了其他地方。 这类似于尝试访问新页面之前单击 Web 浏览器的返回 - 什么都不会发生。...单击工具栏按钮激活平移和缩放,然后将鼠标放在轴域的某个地方。 按住鼠标左键并将其拖动到新位置来平移图形。 当你释放它,你按下的点处的数据将移动到你释放的点。...可以使用鼠标左键拖动半径轴标签。 可以使用鼠标右键放大和缩小半径刻度。 Zoom-to-rectangle(缩放到矩形)按钮 单击此工具栏按钮以激活此模式。 将鼠标放在轴域的某处,然后按鼠标左键。...+ w 将平移/缩放限制于x轴 使用鼠标平移/缩放按住x 将平移/缩放限制于y轴 使用鼠标平移/缩放按住y 保留宽高比 使用鼠标平移/缩放按住CONTROL 切换网格 鼠标轴域按下g 切换...x轴刻度(对数/线性) 鼠标轴域按下L或k 切换y轴刻度(对数/线性) 鼠标轴域按下l 如果你使用matplotlib.pyplot,则会为每个图形自动创建工具栏。

    2.1K20

    axure如何创建弹出层

    原件准备:矩形框、图片框 首先,选择矩形框原件画一个矩形,设置矩形的填充色为灰色,透明度为50% 右键转换为动态面板,双击选择动态面板,动态面板中放入一个图片框并选择图片,将动态面板和图片作为一个组合...选择旋转图片,添加交互用例 ? 现在添加鼠标单击的交互用例 当鼠标单击,弹出动态面板,所以在用例编辑里边选择显示动态面板里边的所有原件 ?...自动隐藏动态面板这个我就不用多说了吧,按步操作即可 接下来设置按钮文字,选择设置文本,选择当前原件,设置文本值为校正完成 之后当然是禁用按钮,我们得先选择按钮的交互样式,将禁用样式设置为灰色,如图所示

    2.6K30

    盘点服装设计所经常性使用的软件-----ET(中篇)

    我们还可以将自己所制作的样本导入到系统中,以备以后不时之需,首先我们需要选择附件登录,如图: 然后选中我们要添加到附件的版型,一般选中就是红色的状态,如图: 当版型为红色,我们右击鼠标,然后就会弹出附件对话框...,如图: 按照上面要求即可将版型添加到附件中去,以后我们制衣就可以调用我们自己的版型了。...六、添加标注 我们可以版型中添加适量的标注来提醒打样的师傅有哪些需要注意的,所以标注很有必要,我们只需要点击ABC图标,如图: 点击ABC后然后按住左键拖动一个线段,然后就会弹出文字输入对话框,如图...首先我们来创建一个矩形,然后我们选中矩形需要更改形状的那一端,然后框选它,此时那一端被选中的会是红色线段,如图: 不过此时是无法它上面进行操作的,我们需要按住Shift键然后一个个点击,然后每个点击处都会出现一个小点点...如图: 然后我们框选那一端,即为红色,用鼠标按住这些绿色的点然后往下拉,即可。

    74040

    Photoshop操作技巧

    将单位改成像素 Photoshop中默认的单位是厘米,而在切图需要的单位是像素 方法:启动Photoshop——选择编辑——选择首选项——选择单位与标尺——弹出的单位与标尺设置对话框中将标尺的单位和文字的单位都设置成像素...——设置完成后单击确定按钮 新建文件的快捷键 Ctrl + N 撤销操作的快捷键 Ctrl + Alt + Z 选中某个图层 首先选择移动工具,将鼠标移动到某个图层,按下Ctrl + 单击鼠标左键...切图方法 选择需要切割的图片所在的图层——将鼠标移到选中的图层单击鼠标右键——弹出的选项中选择转换为智能对象——选择矩形选框工具——使用矩形选框工具选择要切割的图片——复制要切割的图片——新建一个背景透明的图层...PNG-24——单击存储 使用参考线切图 需要切割的图片创建四条参考线——选择工具栏中的切片工具——点击状态栏中的基于参考线的切片(此时由参考线围成的矩形都转换为了切片)——选择文件选项下的存储为Web...所用格式(photoshop cc中文件选项下没有存储为Web所用格式这个选项,该选项文件选项下的导出选项中)——将图片的格式设置为PNG-24——单击存储——弹出的将优化结果存储为对话框中最底下的切片选项中选择选中的切片

    73820

    【Java AWT 图形界面编程】Canvas 中绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭 | 获取并绘制图片 | 鼠标拖动计算位移 | 画布偏移 )

    关闭窗口并退出应用 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 2、获取并绘制图片 AWT 中 , 使用 Toolkit.getDefaultToolkit...鼠标按下 , 记录按下的位置 , 保存到 startX 和 startY 变量中 , 这两个变量每次鼠标按下都会更新 ; // 为组件设置鼠标监听事件 addMouseListener...; // 添加鼠标动作监听 addMouseMotionListener(new MouseAdapter() { // 鼠标拖动事件..., 画布偏移为 0 , 但是 鼠标不断拖动的过程中 , 偏移量 ( offsetX , offsetY ) 一直累加 , 每次累加 , 都要重绘画布 , 重绘 , 调用 Graphics2D#translate...startX = e.getX(); startY = e.getY(); } }); // 添加鼠标动作监听

    1.4K20

    【Java AWT 图形界面编程】使用鼠标滚轮放大缩小 Canvas 画布 ( 鼠标滚轮事件监听器 MouseWheelListener )

    1.0 设置鼠标滚轮监听 , Canvas 组件中 , 调用 addMouseWheelListener 函数 , 添加 鼠标滚轮监听器 MouseWheelListener , 实现该监听器中的...void mouseWheelMoved(MouseWheelEvent e) 函数 , 当鼠标滚轮滑动 , 通过 MouseWheelEvent 对象 , 获取鼠标滚轮的滑动方向 , 向上滑动...应用该缩放比例 ; // 添加鼠标滚轮监听器 addMouseWheelListener(new MouseWheelListener() {...+ 鼠标滚轮缩放示例 ---- 【Java AWT 图形界面编程】Canvas 中绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭 | 获取并绘制图片 | 鼠标拖动计算位移...| 画布偏移 ) 博客中 , 绘制了超大图像 , 可以使用鼠标拖动 , 这里在上述基础 , 新增鼠标滚轮缩放示例 ; 1、代码示例 代码示例 : import javax.swing.*; import

    2.3K30

    盘点服装设计所经常性使用的软件-----ET(上篇)

    前言 今天要跟大家介绍的是关于服装设计所经常性使用的软件-----ET,这个ET可不是外星人,而是一款软件。...这款软件国内是最受欢迎的,其优点多多,这里不一一讲述,下面来看看它的具体操作过程,让小编带着大家一起做漂亮的服装版型,人人都可以成为服装设计师。...三、智能笔 我们可以使用智能笔来画图,如图: 点击箭头处,然后鼠标拖动,如图: 可以拖动出矩形,直线或者多边形。...如图: 你只需要右击鼠标,然后左键单击,即可绘制直线或者曲线,第一次打开软件是绘制的矩形。...,现在变了颜色了,这些红色部分的图形就是我们选中的要删除的目标对象了,然后单击鼠标右键,即可完成删除。

    74920

    think-cell chart系列19——任务甘特图

    以上开发过程需要按照清晰的逻辑展现在图表,甘特图再合适不过了。 ppt的think-cell chart插件菜单中用鼠标选中甘特图并在页面释放鼠标。 ?...鼠标选中最顶部月份一栏单击右键打开日历选项。(手动拖动滑动柄,范围3月~5月)。 ? 调整第二行具体日期的显示格式,还是选中右键单击显示格式菜单中选择适合的格式(这里用的是MM/DD)。 ?...下面就可以开始添加项目进度条了。 第一个项目进度:软件规划3月2日~3月7日,选中第一个系列矩形框,右键单击选择进度条类型。 ?...单击右键弹出菜单中添加标记点。 ? 将之前做的项目进度条统统添加起始日期标记。(单击任意一个进度条,右键调出编辑菜单,添加标记) ?...选中整个图表,右键单击调出编辑菜单,鼠标点击带两个R标识的菜单,一个代表项目负责人,一个代表备注。 ? 负责人和备注栏里,你可以添加更为详细的相关信息。

    5.7K70

    中秋特辑:Java事件监听实现一个猜灯谜小游戏

    众所周知,JavaSwing是Java中关于窗口开发的一个工具包,可以开发一些窗口程序,然后由于工具包的一些限制,导致Java在窗口开发商并没有太多优势(当然也有一些第三方的工具包也很好用),不过,JavaSwing...中关于事件的监听机制是我们需要重点掌握的内容。...何为事件监听 Java中,事件监听(Event Listening)是一种处理用户交互的机制。通过事件监听,你的程序可以在用户进行某些操作(如点击按钮、输入文本、移动鼠标等)执行特定的任务。...事件监听的工作原理是:你将事件监听器注册到事件源,当用户与事件源交互,Java运行环境会自动调用相应的事件监听器处理事件。...当然了,以上是官方的一些概念,一如既往地晦涩难懂,简单点说,就是你点击窗口中的一些操作按钮,Java程序是如何知道你点击了它们呢?

    26440

    Java-GUI编程之Swing组件

    ,而是为其他边框设置标题,创建该类的对象,需要传入一个其他的Border对象; ComoundBorder:用来组合其他两个边框,创建该类的对象,需要传入其他两个Border对象,一个作为内边框,一个座位外边框...: 创建一个适用于该容器的组件(例如,工具栏中创建一个工具按钮); 从 Action 对象中获得对应的属性来设置该组件(例如,通过 name 来设置文本,通过 lcon 来设置图标) ; 把Action...对 showConfirmDialog 所产生的对话框,有如下几个返回值: YES OPTION: 用户 单击了 "是"按钮后返回 。 NO OPTION: 用 户单击了"否"按钮后返回 。...CANCEL OPTION: 用户单击了"取消"按钮后返回 。 OK OPTION : 用户单击了"确定"按钮后返回 。...CLOSED OPTION: 用户 单击了对话框右上角的 " x" 按钮后返回。

    2.3K20

    盘点服装设计所经常性使用的软件-----ET(上篇)

    前言 今天要跟大家介绍的是关于服装设计所经常性使用的软件-----ET,这个ET可不是外星人,而是一款软件。...这款软件国内是最受欢迎的,其优点多多,这里不一一讲述,下面来看看它的具体操作过程,让小编带着大家一起做漂亮的服装版型,人人都可以成为服装设计师。...三、智能笔 我们可以使用智能笔来画图,如图: 点击箭头处,然后鼠标拖动,如图: 可以拖动出矩形,直线或者多边形。...如图: 你只需要右击鼠标,然后左键单击,即可绘制直线或者曲线,第一次打开软件是绘制的矩形。...,这些红色部分的图形就是我们选中的要删除的目标对象了,然后单击鼠标右键,即可完成删除。

    52800
    领券