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

仅使用mousePressed、mouseReleased和mouseDragged在自定义JTable中选择多行

在自定义JTable中选择多行,可以通过使用mousePressed、mouseReleased和mouseDragged这三个鼠标事件来实现。

首先,需要在JTable上注册这三个鼠标事件的监听器。可以通过以下代码实现:

代码语言:txt
复制
table.addMouseListener(new MouseAdapter() {
    @Override
    public void mousePressed(MouseEvent e) {
        // 处理鼠标按下事件
    }

    @Override
    public void mouseReleased(MouseEvent e) {
        // 处理鼠标释放事件
    }

    @Override
    public void mouseDragged(MouseEvent e) {
        // 处理鼠标拖拽事件
    }
});

在mousePressed方法中,可以记录下鼠标按下时的坐标,以及当前选中的行。可以使用JTable的rowAtPoint方法来获取鼠标按下时所在的行,如下所示:

代码语言:txt
复制
int selectedRow = table.rowAtPoint(e.getPoint());

在mouseReleased方法中,可以记录下鼠标释放时的坐标,并根据按下和释放的坐标范围来确定选中的行。可以使用JTable的getSelectionModel方法来获取表格的选择模型,然后使用该选择模型的addSelectionInterval方法来选中一段行,如下所示:

代码语言:txt
复制
int releasedRow = table.rowAtPoint(e.getPoint());
int minRow = Math.min(selectedRow, releasedRow);
int maxRow = Math.max(selectedRow, releasedRow);
table.getSelectionModel().addSelectionInterval(minRow, maxRow);

在mouseDragged方法中,可以根据鼠标拖拽的坐标范围来实时更新选中的行。可以使用JTable的getSelectionModel方法来获取表格的选择模型,然后使用该选择模型的addSelectionInterval和removeSelectionInterval方法来选中或取消选中一段行,如下所示:

代码语言:txt
复制
int draggedRow = table.rowAtPoint(e.getPoint());
int minRow = Math.min(selectedRow, draggedRow);
int maxRow = Math.max(selectedRow, draggedRow);
table.getSelectionModel().addSelectionInterval(minRow, maxRow);
table.getSelectionModel().removeSelectionInterval(minRow, maxRow);

通过以上的鼠标事件处理,就可以实现在自定义JTable中选择多行的功能。

关于JTable的更多信息和使用方法,可以参考腾讯云的产品介绍链接地址:https://cloud.tencent.com/document/product/876/19482

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

相关·内容

如果用java swing编写一个五子棋(人人对战)

一.前言 刚学习java,上一次写了一个姓名随机抽取器,点击查看,参加了原力计划,被小编推荐到了首页,也是第一次首页看到自己写的东西,当时看到的那一刻实实在在很开心,其实我们好多人学习东西,恰恰就需要那么一点点的鼓励被重视...在上次写完随机抽取器,有人给我留言,说如果添加了抽取过程可以显示动态名字就更好,后来我也认真想了想,俗话说,始于颜值,,,颜值即正义,于是在下手码代码前,我有了经验,我用PS认认真真的把我需要的资源都做好了...我也找到了游戏的背景,棋子落下时也会有音乐,由于录制的是动态图,所以没办法在这里给各位呈现音乐效果,下面有游戏效果流程图,由于代码可能比较繁琐,我特意准备了流程图帮助各位理解,至于代码,我会尽可能注释清楚...然后继续玩下去,我们可以断定的是一颗棋子落子之前是不会有五连珠的,所以我们只需要判断最后一次落子,例如水平方向上的判断: 我们可以获得该棋子的坐标,然后遍历该棋子左面水平方向的棋子,如果有连续的棋子该棋子属性...没有它,天才也会在矛盾无定的迷径徒劳无功。

1.2K51
  • p5.js 开发点彩画派的绘画工具

    样式方面就靠各位工友动手啦~ jcode 移动端阅读的工友可以看下图效果~ 动手编码 要实现这个画版工具主要有以下步骤: 创建 canvas 画布。 创建颜色选择器。 创建画笔宽度控制器。...主要用到的生命周期有 setup draw,这部分我 p5.js 光速入门 里有讲到。...创建颜色选择器、滑块、按钮分别用了 p5.js 的 createColorPicker() 、createSlider() createButton() 方法。...绘制过程的代码写在 draw 周期里,使用了 circle() 方法创建圆形,圆形的坐标就是鼠标绘画时的当前坐标,圆形的尺寸是取滑块的值,圆形的颜色取了颜色选择器的值。...以下是完整代码,可以结合上面的讲解代码的注释一起理解。

    35631

    Qt编写安防视频监控系统36-onvif连续移动

    所有停靠模块都自动生成对应的菜单用来控制显示隐藏,标题栏右键可以弹出。 支持显示所有模块、隐藏所有模块、复位普通布局、复位全屏布局。...(三)特色功能 主界面采用停靠窗体模式,各种组件以小模块的形式加入,可自定义任意模块加入。 停靠模块可拖动任意位置嵌入悬浮,支持最大化全屏,支持多屏幕。...双重布局文件存储机制,正常模式、全屏模式都对应不同的布局方案,自动切换保存,比如全屏模式可以突出几个模块透明显示指定位置,更具科幻感现代化。...可选多种内核自由切换,ffmpeg、vlc、mpv等,均可在pro设置。推荐用ffmpeg,跨平台最多,默认提供好了linuxmac平台上编译好的库。...)), this, SLOT(mousePressed(int, QString))); connect(ui->gaugeCloud, SIGNAL(mouseReleased(int, QString

    1.1K40

    Java事件处理,低级事件类型:键盘事件+焦点事件,你真的懂吗?

    当用户点击鼠标按钮时,将会调用三个监听器方法:鼠标第一次被按下时调用mousePressed;鼠标被释放时调用mouseReleased;最后调用mouseClicked。...然而,JDK 1.4,建议使用一种不同的方式。...//code for right click 列举的简单例子,提供了mousePressedmouseClicked方法。当鼠标点击在所有小方块的像素之外时,就会绘制一个新的小方块。...这个操作是mousePressed方法实现的,这样可以让用户的操作立即得到响应,而不必等到释放鼠标按键。如果用户某个小方块双击鼠标,就会将它擦除。...实现这项操作需要使用Cursor类的getPredefinedCursor方法。表8-2列出了Windows环境下,鼠标的形状方法对应的常量。

    4K30

    利用Kotlin实现破解Android版的微信小游戏–跳一跳

    保存截屏到手机 $ adb pull /sdcard/screen.png # 下载截屏文件到本地 得到手指按的时间 t 时间 = 距离 / 速度(常量) t = L / k L = p2 – p1 获取到起始点结束点的坐标...{ e.printStackTrace() } } } jPanel.addMouseListener(object : MouseListener { override fun mouseReleased...{ } override fun mousePressed(e: MouseEvent?)...return Math.sqrt((a.x - b.getX()) * (a.x - b.getX()) + (a.y - b.getY()) * (a.y - b.getY())).toInt() } 使用方法...电脑上下载好adb 打开安卓手机的usb调试模式并授权连接的电脑 打开微信跳一跳,并点击开始 Constans.kt配置好adb路径与截图路径,运行 弹出的窗口中先点击小人底部适当位置,然后再点想要跳的箱子的位置即可完成

    97710

    用Kotlin破解Android版微信小游戏-跳一跳成果跳一跳思路源码使用方法参考来源Android 插件 免PC

    保存截屏到手机 $ adb pull /sdcard/screen.png # 下载截屏文件到本地 得到手指按的时间 t 时间 = 距离 / 速度(常量) t = L / k L = p2 - p1 获取到起始点结束点的坐标...} } } jPanel.addMouseListener(object : MouseListener { override fun mouseReleased...{ } override fun mousePressed(e: MouseEvent?)...return Math.sqrt((a.x - b.getX()) * (a.x - b.getX()) + (a.y - b.getY()) * (a.y - b.getY())).toInt() } 使用方法...电脑上下载好adb 打开安卓手机的usb调试模式并授权连接的电脑 打开微信跳一跳,并点击开始 Constans.kt配置好adb路径与截图路径,运行 弹出的窗口中先点击小人底部适当位置,然后再点想要跳的箱子的位置即可完成

    1.2K60

    Java Swing JTable

    1 简介 JTable用于显示编辑常规的二维单元格表。有关面向任务的文档使用JTable的示例,请参见Java教程的如何使用表。...JTable具有许多功能,可以自定义其呈现编辑功能,但是为这些功能提供了默认设置,因此可以轻松设置简单的表。...使用专门的渲染器编辑器。 JTable使用整数来引用它显示的模型的行列。 JTable只是采用表格形式的单元格范围,并在绘制过程中使用getValueAt(int,int)从模型检索值。...例如,选择始终是根据JTable进行的,因此,使用RowSorter时,您将需要使用convertRowIndexToView或convertRowIndexToModel进行转换。...如果启用了排序,则JTable将根据排序模型保留选择可变行高。

    5K10

    java winform开发之JTable全攻略

    列表在任何一门开发语言中都占有非常重要的地位,.Net中有GridView,extjs中有GridPanel。。。,而在java Swing,它的名字叫JTable。...这两天研究JTable使用,也有一些收获,所以在这里跟大家分享交流一下,下面的内容将包括:1)JTable的基本用法;2)怎样为JTable添加行点击响应事件,双击后打开窗口;3)怎样为JTable...,然后右击,选择“表内容”就可以进行表格的行列的编辑了,不过通常情况下,表格的内容都是动态生成的,所以控件上直接编辑它的内容的意义是不大的,当然,做DEMO时比较有用。...,实例化并初始化好Vector后,只要调用JTable的setModel方法,就可以将列头及数据的信息显示表格啦。...2)怎样添加行点击事件 首先,JTable的设计视图中先选中JTable,然后右击,事件的弹出菜单依次选中"mouse-click”就可以捕捉表格的点击事件了,在这个事件监听方法,会传入一个java.awt.event.MouseEvent

    1.2K30

    Java-GUI编程之处理位图

    AWT 也允许组件上绘制位图, Graphics 提供了 drawlmage() 方法用于绘制位图,该方法需要一个Image参数一一代表位图,通过该方法就可 以绘制出指定的位图 。...; 2.调用BufferedImage对象的getGraphics()方法获取画笔,此时就可以往内存的这张图片上绘图了,绘图的方法之前学习的一模一样; 3.调用组件的drawImage()方法,一次性的内存的图片...使用位图绘制组件的好处: 使用位图来绘制组件,相当于实现了图的缓冲区,此时绘图时没有直接把图形绘制到组件上,而是先绘制到内存的BufferedImage上,等全部绘制完毕,再一次性的图像显示到组件上即可...drawArea.addMouseMotionListener(new MouseMotionAdapter() { //用于绘制图像 public void mouseDragged...drawArea.addMouseListener(new MouseAdapter() { //用于弹出右键菜单 public void mouseReleased

    48210

    java swing项目桌面软件还是蛮香的,至少有了我自己的桌面软件|Java 开发实战

    下面就Jtable使用,好好整理了一番,途中参考的文章我都会放在下面列出,读者可以自己参考**JTable结构梳理JTable=TableHeader+TableColumn顾名思义我们知道表格是由表头表列组成的...但是JTable如果想让表头显示仅仅将JTable加入Jpanel或者Jframe是不行的,我这里提供两种方式实现1、分别将TableHeaderTableColumn加入控件单独的显示,这种情况不常见...2、先将JTable加入jscrollpane(滚动条),然后将滚动条加入到对应的控件(Jpanel或者是Jframe).java swing 开发中加入滚动条是很常见的操作,所以这种方式的加入表格还是很推荐的...),如果不在数据添加那么我们的getClass方法就起不到作用,这个用到了下面的知识来解决JTable渲染编辑这种呢其实就是上面的getClass底层的实现方式,JTable源码我们上面可以看出JTable...setCellEditorsetCellRenderer大家可以观察源码,JTable的编辑器AbstractCellEditor是基础的抽象类,他继承了CellEditor,怎么样熟悉吗,这个不就是

    34110

    eclipse swing开发_学生教务系统登录

    StudentViewInterFrm.java 四、其他 1.其他系统实现 JavaWeb系统系列实现 JavaSwing系统系列实现 2.获取源码 3.备注 4.鸡汤 一、系统介绍 本系统实现了学生登录管理员登录...[columnIndex]; } }); courseTable.addMouseListener(new java.awt.event.MouseAdapter() { public void mousePressed...return; } int n = JOptionPane.showConfirmDialog(this, "确定要选择该门课程吗?")...Swing实现自助取款机(ATM)系统 Java+Swing实现超市管理系统-TXT存储信息 Java+Swing实现宠物商店管理系统-TXT存储信息 2.获取源码 点击以下链接获取源码,数据库文件sql...本站提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    2.6K40

    Qt编写自定义控件10-云台仪表盘

    一、前言 做过安防视频监控的同学都清楚,视频监控系统软件上都可以看到一个云台控制区域,可以对球机进行下下左右等八个方位的运动控制,还可以进行复位,一般都是美工作图好,然后贴图的形式加入到软件,好处是程序简单...自带的控件一样使用,大部分效果只要设置几个属性即可,极为方便。...每个控件默认配色demo对应的配色都非常精美。 超过130个可见控件,6个不可见控件。 部分控件提供多种样式风格选择,多种指示器样式选择。 所有控件自适应窗体拉伸变化。...使用demo,自定义控件+属性设计器。...自定义控件插件开放动态库dll使用(永久免费),无任何后门限制,请放心使用。 目前已提供26个版本的dll,其中包括了qt5.12.3 msvc2017 32+64 mingw 32+64 的。

    1.6K20

    【Java AWT 图形界面编程】使用小键盘按键缩放 Canvas 画布绘制的背景图像 ( 键盘按键监听 + 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )

    【Java AWT 图形界面编程】Canvas 绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭 | 获取并绘制图片 | 鼠标拖动计算位移 | 画布偏移 ) 博客 , 绘制了超大图像..., 可以使用鼠标拖动 ; 【Java AWT 图形界面编程】使用鼠标滚轮放大缩小 Canvas 画布 ( 鼠标滚轮事件监听器 MouseWheelListener ) 博客 , 新增鼠标滚轮缩放画布示例..., 但是使用鼠标拖动时 , 拖动的效果也随之缩放, 如 缩小画布后 , 移动鼠标 , 移动距离对应的缩放效果也随之缩小 ; 【Java AWT 图形界面编程】使用鼠标滚轮放大缩小 Canvas 画布绘制的背景图像...( 鼠标滚轮事件监听器 MouseWheelListener | Canvas 绘制图像并设置图像大小 ) 博客 , 使用缩放背景图像的方式 , 实现缩放效果 , 并同时福袋鼠标指针拖拽效果 ;...}); // 为组件设置鼠标监听事件 addMouseListener(new MouseAdapter() { public void mousePressed

    1.8K20
    领券