java - 拖动并移动一组 JPanel 中的 JPanel

标签 java swing

有一组 10 个 JPanel 放置在 GridLayout 中。现在我想拖动一个 JPanel(例如 panel1)并将其放置在另一个 JPanel(例如 panel2)上,并将 panel2 向左或向右移动,并将 panel1 放置在 panel2 位置。我可以使用拖动选项拖动 JPanel,但无法将其放在所需的位置。我需要一些帮助来将面板移动到放置位置。 抱歉,如果我的问题不清楚。希望你能理解。 提前致谢。

最佳答案

你可以尝试这个,但就像我说的,可能有更好的方法:

public JPanel getPanelColliding(JPanel dragPanel, JPanel[] panels)
{
   Rectangle rDrag = dragPanel.getBounds();

   for (JPanel panel : panels){
     if (panel == dragPanel) continue;

     Rectangle r = panel.getBounds();
     if (r.insersects(rDrag))
         return r;
   }

   return null;
}

然后在您的拖动监听器中,如果getPanelColliding()不为空,您可以调用它并交换面板位置。我没有对此进行测试,但它应该可以工作!

关于java - 拖动并移动一组 JPanel 中的 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18406486/

相关文章:

java - 使用 Google Maps Api V2 时,Android 2.2 或 4.1.2 模拟器上缺少 Google Play 服务

java - 在运行时动态创建JTable

java - Swing App 中实现 Undo 的堆溢出

java - 如何访问内部嵌套方法中的外部变量?

java - PHP解码Base64,刷新并保留数据

java - jps命令仅列出jps,但仍提供HDFS服务

java - 在哪里放置泛型类型

java - JVM 与 Dalvik 和/或 ART 究竟有何不同?

java - JPanel 矩形覆盖;不会删除

java - 向程序添加列表选择监听器时卡住了