java - 如何通过拖动从 JTable 中删除列?

标签 java swing drag-and-drop jtable

在 Outlook 中,如果将列标题拖出表格,我可以删除表格列。我如何在 Java 中使用 Swing JTable 执行相同的操作?

无法进行默认的拖放操作,因为此功能与目标位置无关。它仅取决于拖动源。

最佳答案

对于这个答案,我使用了 SimpleTableDemo .我只是将 MouseListener 添加到表中。这里是 MouseListener:

class MyMouseListener implements MouseListener {
  public void mouseClicked(MouseEvent arg0) {}
  public void mouseEntered(MouseEvent arg0) {}
  public void mouseExited(MouseEvent arg0) {}
  public void mousePressed(MouseEvent arg0) {}
  public void mouseReleased(MouseEvent m) {
    JTableHeader tableHeader = (JTableHeader)m.getComponent();
    JTable table = tableHeader.getTable();
    if (!table.getBounds().contains(m.getPoint())) {
      table.removeColumn(table.getColumnModel().getColumn(
          tableHeader.columnAtPoint(m.getPoint())));
    }
  }
}

这是一个非常基本的方法,没有任何异常处理。但至少它有效。

关于java - 如何通过拖动从 JTable 中删除列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/528618/

相关文章:

cocoa - 在 MonoMac NSView 中接收拖放?

java - 如何分析通过 JSON 发送的照片

java - java 8编译的jar文件可以在java 7上运行吗?

java - 我正在尝试创建一个小型 GUI 应用程序,但 JFrame 的内容未显示在屏幕上。我该如何修复我的代码?

c# - 单卡怎么拖

java - Swing 拖放 : accepting/rejecting file list drop based on # of files/types of files?

Java JNI 围绕 java 函数及其 C 实现

java - 发现编译器错误 : void required: double on simple method java assignment

java - 如果 JTable 包含阿拉伯字符,如何强制它不反转文本?

java - 将所有 java swing gui 放在一个类中是否正常?