【问题标题】:Media/fn keys in javajava中的媒体/ fn键
【发布时间】:2011-10-04 13:46:28
【问题描述】:

我目前正在使用 java 的 gstreamer 绑定在 java 中开发媒体应用程序。一切都很顺利,除了一个关于键盘的小问题,特别是媒体键(例如播放/暂停、返回、下一个)。

我有可以作为这些功能的按钮/菜单项正常工作的操作,并且希望允许使用某些键盘上的键(通常在笔记本电脑上)。但是,我在 java.awt.event.KeyEvent 中找不到 andthing 来表示这些键。我尝试运行下面代码的 sn-p,它适用于大多数键,包括 f1-12,但在按住 'fn' 时没有响应 'fn' 或媒体键。

有谁知道如何让这些键工作?

代码:

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

public class Key extends JFrame{

    public Key(){

        JTextField f = new JTextField(50);
        f.addKeyListener(new KeyAdapter(){
            public void keyPressed(KeyEvent e){
                System.out.printf("%s : %d \n", e.getKeyChar(), e.getKeyCode());
            }
        });
        setContentPane(f);
        pack();
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setVisible(true);

    }

    public static void main(String[] args){
        new Key();  
    }

}

【问题讨论】:

    标签: java swing events key


    【解决方案1】:

    如果 e.getKeyChar()e.getKeyCode() 键在您按下这些键时没有返回任何内容,我不知道有任何其他方法可以通过标准 Java 库获取这些事件,除了 using JNI 来获取较低级别的代码。

    您似乎走在了正确的轨道上,试图在按下某个键时获取键码,这就是当您不知道 Java 中的正确常量是什么时您会发现键码的方式。

    除此之外,this question 似乎提供了一些可能性(尽管我不确定这是否仅适用于 Microsoft IntelliType 设备,或者它是否适用于跨平台)。例如,当我在我的 Mac 上使用 Microsoft IntelliType 键盘时,媒体键似乎工作得很好。

    【讨论】:

    • 我担心你会说这样的话:/我想我还是会问
    • 嗯,更新了我的答案。您也许可以使用 JIntelliType 的东西。
    猜你喜欢
    • 2011-04-11
    • 2013-05-05
    • 2017-07-07
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    相关资源
    最近更新 更多