java - 当鼠标悬停在两个面板的交叉区域时更改光标

标签 java swing panel

我在 JFrame 上有 2 个 Jpanel(左面板和右面板)。当鼠标悬停在两个面板的交叉区域时如何更改光标?

enter image description here

到目前为止,我尝试过:

 ...
 public void mouseMoved(MouseEvent e) {
           if (leftpanel.contains(e.getPoint()) && rightpanel.contains(e.getPoint())){

                frame.setCursor(Cursor.getPredefinedCursor(Cursor.W_RESIZE_CURSOR));

          }
           else{ frame.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
        };

但它不起作用..

最佳答案

您的问题是如何检测两个面板的交集并更改光标。以下是如何执行此操作的示例


    public static void overlapTest() {
        final JPanel p1 = new JPanel();
        final JPanel p2 = new JPanel();
        p1.setBackground(Color.RED);
        p2.setBackground(Color.BLUE);
        final JPanel container = new JPanel();
        container.setLayout(null);
        container.add(p1);
        container.add(p2);
        p1.setBounds(0,0,120,100);
        p2.setBounds(80,0,120,100);
        Dimension size = new Dimension(200,100);
        container.setPreferredSize(size);
        container.addMouseMotionListener(new MouseMotionListener() {

            @Override
            public void mouseDragged(MouseEvent arg0) {
            }

            @Override
            public void mouseMoved(MouseEvent e) {
                Point pt1 = e.getPoint();
                pt1.translate(-p1.getX(), -p1.getY());
                Point pt2 = e.getPoint(); 
                pt2.translate(-p2.getX(), -p2.getY());
                if (p1.contains(pt1) && p2.contains(pt2)) {
                        System.out.println("both contain: " + e.getPoint());
                        container.setCursor(Cursor.getPredefinedCursor(Cursor.W_RESIZE_CURSOR));
                  }
                  else{ 
                      container.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
                  };
            }

        });
    }

关于java - 当鼠标悬停在两个面板的交叉区域时更改光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10220540/

相关文章:

java - 保存 HTML 文档

java - 获取特定 JTable 单元格中的前景(字体)

events - 防止jquery移动面板打开?

java - 如何解析Java中静态文件的路径?

java - 将 Pi 转换为字母?

java - Ktab 命令列出 keytab 文件中的主体超过 1 次

java - 从包含 # 的 url 在 java servlet 之间重定向

java swing 组合框

.net - Windows 窗体应用程序中的面板与 GroupBox

java - 面板占据相同的空间