【问题标题】:Drag and Drop with JTable on Mac OS X在 Mac OS X 上使用 JTable 进行拖放
【发布时间】:2012-10-04 14:22:48
【问题描述】:

我在 Mac 上遇到了 DnD 和 JTable 的问题。 如果您启动以下程序并在表格中单击(快速),有时会选择某些内容,有时会在一段时间后执行 DnD 应用程序崩溃或至少 DnD 不会 有可能了。我在 2 台 Mac 上对其进行了测试。

Java 版本:1.6.0_35 Mac OS X:10.6.8

有人可以确认吗? 有什么解决方法吗?

package tablednd;

import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.SwingUtilities;

public class TableDnD {
public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            Object[][] data = {
                {"Mary", "Campione", "Snowboarding", new Integer(5), new Boolean(false)},
                {"Alison", "Huml", "Rowing", new Integer(3), new Boolean(true)},
                {"Kathy", "Walrath", "Chasing toddlers", new Integer(2), new Boolean(false)},
                {"Mark", "Andrews", "Speed reading", new Integer(20), new Boolean(true)},
                {"Angela", "Lih", "Teaching high school", new Integer(4), new Boolean(false)}
            };

            String[] columnNames = {"First Name", "Last Name", "Sport", "# of Years", "Vegetarian"};

            final JTable table = new JTable(data, columnNames);
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            table.setDragEnabled(true);
            frame.add(table);
            frame.pack();
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
    });
}
}

【问题讨论】:

标签: java macos swing jtable drag-and-drop


【解决方案1】:

将拖动的行拖放到表格的其他任何位置时,我(有时)会得到下面显示的错误,直到 Mac OS X 10.5.8。目标选择矩形保留在屏幕上,无法进行进一步的拖动操作。我不知道为什么,但我想一个单元格没有被识别为适合一行的目的地。

2012-10-14 14:14:23.912 java[44061:10b] ***-[NSWindowViewAWT draggingEnded:]: 无法识别的选择器发送到实例 0x1001e7140 2012-10-14 14:14:23.913 java[44061:10b] ***-[NSWindowViewAWT draggingEnded:]: 无法识别的选择器发送到实例 0x1001e7140

将拖动的行放到另一个应用程序上可以按预期工作。

顺便说一句,auto-boxing 可以简化初始化代码:

Object[][] data = {
    {"Mary", "Campione", "Snowboarding", 5, false},
    {"Alison", "Huml", "Rowing", 3, true},
    {"Kathy", "Walrath", "Chasing toddlers", 2, false},
    {"Mark", "Andrews", "Speed reading", 20, true},
    {"Angela", "Lih", "Teaching high school", 4, false}
};

附录:此图显示了正在进行的拖动;触发异常后,拖动框架时灰色矩形保持不动。

作为一种解决方法,disable the grey rectangle altogether 有一个解决方案。

【讨论】:

    猜你喜欢
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 2014-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多