相关疑难解决方法(0)

如何删除JFileChooser上的Ctrl + C操作?

JFileChooser在我自己的框架中嵌入了一个框架中的其他自定义组件.这是我的应用程序的设计,因为它可能有助于可视化我的问题:

我是如何使用JFileChooser的

如果你不能说,JFrame标题下面的列表是JFileChoosers.这应该是有效的方法是您为目标分配快捷方式,然后当您按下这些快捷键时,所选文件将移动到目标.

我这样做的策略是将快捷方式分配给一个javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW范围InputMap的整个框架.

但令人讨厌的是,某些东西(我假设JFileChooser)继续响应/吸收我不想要的按键.例如,如果我按下Ctrl+C我的快捷键操作则不会运行.我尝试了本机外观(我使用的是Windows 7)和默认的L&F,两种情况都有同样的问题.我认为它可能正在尝试对所选文件进行复制操作,JFileChooser因为如果我点击其中一个按钮强制它失去焦点,突然我的Ctrl+C命令就完成了我的操作.

但是,我不确定这JFileChooser是怎么回事.当我调用getKeyListeners()它时,它返回一个空数组.我也尝试在所有三个范围内清除这个组合键的输入映射,它似乎仍然吸收了按键.

任何人都可以给我一些使JFileChooser忽略的示例代码Ctrl+C吗?此外,如果有人能告诉我将来如何调试这样的问题,那将会很有帮助.


这是我到目前为止尝试过的一些代码.您也可以使用它来尝试自己测试,因为此代码编译并运行,原样:

package com.sandbox;

import javax.swing.*;
import java.awt.event.ActionEvent;

public class Sandbox {

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        panel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("control C"), "println");
        panel.getActionMap().put("println", new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                System.out.println("The JPanel action was performed!");
            } …
Run Code Online (Sandbox Code Playgroud)

java swing key-events jfilechooser key-bindings

8
推荐指数
1
解决办法
1573
查看次数

使用按日期排序的文件启动JFileChooser

最近提出的一个问题是:如何在详细信息视图中启动JFileChooser?答案做这件事提供了一个很好的技术.

我想在此提出的愿望一层:因为我现在知道如何打开JFileChooser中的详细信息视图,我把它用日期排列的文件打开?我知道用户当然可以点击标题,但有没有办法在代码中实现这一点?

java swing jfilechooser date

4
推荐指数
1
解决办法
2063
查看次数

标签 统计

java ×2

jfilechooser ×2

swing ×2

date ×1

key-bindings ×1

key-events ×1