Voice Over utility anounce Swing应用程序作为Java

时间:2012-11-19 03:54:39

标签: java macos swing voiceover

我有一个Swing应用程序,当我运行VoiciOver Utility时,它会将Swing应用程序称为Java。

例如:

import javax.swing.*;
import java.awt.event.*;
public class Menu extends JFrame{
public Menu()
{
    super("Menu example");

    JMenu file = new JMenu("File");
    file.setMnemonic('F');
    JMenuItem newItem = new JMenuItem("New");
    newItem.setMnemonic('N');
    file.add(newItem);
    JMenuItem openItem = new JMenuItem("Open");
    openItem.setMnemonic('O');
    file.add(openItem); 
    JMenuItem exitItem = new JMenuItem("Exit");
    exitItem.setMnemonic('x');
    file.add(exitItem);

    //adding action listener to menu items
    newItem.addActionListener(
        new ActionListener(){
            public void actionPerformed(ActionEvent e)
            {
                System.out.println("New is pressed");
            }
        }
    );
    openItem.addActionListener(
        new ActionListener(){
            public void actionPerformed(ActionEvent e)
            {
                System.out.println("Open is pressed");
            }
        }
    );
    exitItem.addActionListener(
        new ActionListener(){
            public void actionPerformed(ActionEvent e)
            {
                System.out.println("Exit is pressed");
            }
        }
    );                      
    JMenuBar bar = new JMenuBar();
    setJMenuBar(bar);
    bar.add(file);

    getContentPane();
    setSize(200, 200);
    setVisible(true);
}

public static void main(String[] args)
{
    Menu app = new Menu();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

如果我们使用voiceOver实用程序尝试此示例,它会将应用程序宣布为“java Menu example window”。

有人可以帮助我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您可以设置com.apple.mrj.application.apple.menu.about.name属性以更改显示的名称,如here所示。