java - 使用 swing 在两个面板之间拖放?

标签 java swing drag-and-drop awt

我是 Swing 的新手。我需要使用 swing 实现拖放。在当前框架中包含不同的面板,即中心面板和左面板有子面板,即控制面板、属性面板。我试图将标签/jbuttons/图像从控制面板拖放到中心面板中。这些面板用于 BorderLayout

enter image description here

我尝试使用鼠标事件进行拖放。我将鼠标监听器放在控制面板上。当我将标签/图像放入中心面板时。它读取 -X & Y Cooridnates 并检查代码

private void mak_lis(final SLabel l) {
   l.addMouseListener(new MouseAdapter() {
    public void mousePressed(MouseEvent m) {
       System.out.println("mak_lis Mouse mousePressed");

    setCursor(yd);
    // l.setBorder(new MatteBorder(1,1,1,1,Color.black));

    }
    public void mouseReleased(MouseEvent m) {
       l.setBorder(null);
       setCursor(dc);
       System.out.println("mak_lis Mouse mouseReleased");
       int x = -(m.getX() + l.getX() - leftPanel.getX());
       int y = m.getY() + l.getY() + leftPanel.getY();
       System.out.println("mak_lis Mouse mouseReleased" + "x" + x+ "y" + y);
       if (y > 0 && x > 0 && y < leftPanel.getHeight() && x < leftPanel.getWidth()) {
        leftPanel.add(new_lab(l, x, y));
                leftPanel.repaint();
        Component[] components1 = leftPanel.getComponents();
        Component component = null;
        for (int i = 0; i < components1.length; i++) {
          // System.out.println("components iii"+ components1[i]);
        component = components1[i];

            }

    }
}

});
}

请告诉我这里有没有遗漏的。实现拖放功能的最佳方法是什么?

最佳答案

关于java - 使用 swing 在两个面板之间拖放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14251390/

相关文章:

android - 将 Recycler View 项目拖放到 Image View

java - 应用程序关闭时闹钟不起作用

java.lang.ClassNotFoundException : org. glassfish.jersey.server.internal.inject.ExtractorException

java - 在java中,只有鼠标悬停在按钮上才会显示按钮

java - 如何在小程序中使用2个面板?

java - 在JTable中动态加载大量数据

java - 如何在最后一个 JFrame 处理期间在 Swing 中显示 "Application Closing.."消息?

c# - Vista & C# - 拖放问题(与海拔无关)

drag-and-drop - SwiftUI onDrag 在设备上运行时不显示预览图像

java - BufferedImage 和像素数组 TheCherno