在拖放 JTable 中单击

发布于 2024-08-08 06:55:36 字数 187 浏览 6 评论 0原文

抱歉,如果之前有人问过这个问题,我到处谷歌搜索但没有运气。 这是我的问题:我想在 JTable 中拖放行。如果不先选择行,我就无法让它工作,这很烦人,我想得到 Windows 资源管理器的类似行为:如果我单击一个项目并在按住左键的同时开始移动鼠标,它会拖动在我的行中,如果我在其他地方单击并在按住左键的同时开始移动鼠标,则会对行进行多重选择。 非常感谢任何帮助

Sorry if this was asked before, I googled everywhere with no luck.
Here's my problem: I'd like to drag and drop rows within a JTable. I cannot get it to work without first selecting the row, which is annoying, I'd like to get a similar behavior the Windows explorer has : if I single click on an item and start moving the mouse while holding the left button, it drags my row, if I single click elsewhere and start moving the mouse while holding the left button, it does a multiple selection of the rows.
Any help is greatly appreciated

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

明媚如初 2024-08-15 06:55:36

您可能需要添加一个鼠标侦听器来侦听 mousePressed 事件,然后使选择的行成为鼠标光标当前所在的行。

table.addMouseListener(new MouseAdapter() {
    public void mousePressed(MouseEvent e) {
        Point p = e.getPoint();
        int row = table.rowAtPoint(p);
        table.setSelectedRow(row);
    }
});

You probably need to add a mouse listener that listens for mousePressed events, and then cause the selection of the row to be the row the mouse cursor is currently over.

table.addMouseListener(new MouseAdapter() {
    public void mousePressed(MouseEvent e) {
        Point p = e.getPoint();
        int row = table.rowAtPoint(p);
        table.setSelectedRow(row);
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文