java - 如何从 JButton 外部调用 JTable Action ?

标签 java swing jtable jbutton copy-paste

我有 JTableTransferHandler,它允许通过 hotkeys 进行copy-cut-paste 操作>DnD。我在 JTable 之外有 3 个 JButtons(copy-cut-paste),它们应该在 JTable 的 TransferHandler< 上调用类似的操作(例如 canImport() 等)。

我该怎么做?

最佳答案

基本上与 recent question/answer 中的方法非常相似: 在其 actionMap 中找到表的复制操作,将其包装成委托(delegate)给原始操作的自定义操作,并在按钮中使用自定义操作:

table.setDragEnabled(true);
final Action copy = table.getActionMap().get("copy");
Action copyWithButton = new AbstractAction("copy") {

    @Override
    public void actionPerformed(ActionEvent e) {
        copy.actionPerformed(
                new ActionEvent(table, e.getID(), e.getActionCommand()));
    }
};
frame.add(new JScrollPane(table));
frame.add(new JButton(copyWithButton), BorderLayout.NORTH);
frame.add(new JScrollPane(new JTextArea(5, 20)), BorderLayout.SOUTH);

关于java - 如何从 JButton 外部调用 JTable Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17589304/

相关文章:

java - 如何使 JTable 排序不在事件线程上?

java - 如何使用 AudioSystem 预加载不同的剪辑?

java - 最简单的 Gui 测试 Java 重绘

java - 带排序功能的 JTable 渲染器

java - JTable/DefaultTableModel 中的 TableModelListener 和 addRow 干扰

java - 从 double 转换为 long,完全转换我的号码

java - 使用 Javascript 从 WebView 调用 Activity 的方法

java - JTable 和 JScrollpane 大小的问题

java - 如何向 JScrollPane 添加水平/垂直滚动条

java - 如何根据以前的单元格值更改 JTable 的单元格背景?