Горячие клавиши
Перевод на русский © Сергей Миссан, 2000
Оригинал статьи опубликован на сайте Javable.com
Java Q&A
Как мне установить горячие клавиши для меню и кнопок? Я использую JDK 1.1.4; отличаются ли соответствующие методы в JDK 1.2?
Пример ниже должен ответить на ваши вопросы о горячих клавишах в Java. Код показывает как установить быстрый доступ для меню, элемента меню, чек-бокса и кнопки. Вы можете выбрать горячую клавишу нажав Alt и код быстрого доступа.
Такой код будет работать и с JDK 1.1, и с JDK 1.2. Заметьте, что для JDK 1.1 вам нужна более новая версия Swing, чем 1.0.2.
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class ShortCutKeys extends JApplet
{
JButton button;
JCheckBox checkBox;
JMenuBar menuBar;
JMenu fileMenu;
JMenuItem exitMenuItem;
JPanel panel;
public void init()
{
 Container container = this.getContentPane();
 Handler eventHandler = new Handler();
 checkBox = new JCheckBox("Hello Mom!");
 checkBox.setMnemonic
   (java.awt.event.KeyEvent.VK_M);
 checkBox.addActionListener(eventHandler);
 button = new JButton("Hello Dad!");
 button.setMnemonic
  (java.awt.event.KeyEvent.VK_D);
 button.addActionListener(eventHandler);
 panel = new JPanel();
 panel.setLayout(new FlowLayout());
 panel.add(checkBox);
 panel.add(button);
 exitMenuItem = new JMenuItem("Exit");
 exitMenuItem.setMnemonic('x');
 exitMenuItem.addActionListener(eventHandler);
 fileMenu = new JMenu("File");
 fileMenu.setMnemonic('f');
 fileMenu.add(exitMenuItem);
 menuBar = new JMenuBar();
 menuBar.add(fileMenu);
 container.add(menuBar, BorderLayout.NORTH);
 container.add(panel, BorderLayout.CENTER);
}
 class Handler implements ActionListener
{
 public void actionPerformed(ActionEvent ae)
{
 if (ae.getSource() == checkBox)
 {
  System.err.println
   ("Action Performed on CHECKBOX");
 }
  else if (ae.getSource() == button)
 {
  System.err.println
   ("Action Performed on BUTTON");
 }
  else if (ae.getSource() == exitMenuItem)
 {
  System.exit(0);
 }
}
}
public static void main(String[] args)
{
 JFrame frame = new JFrame("Short Cut Keys");
 ShortCutKeys sck = new ShortCutKeys();
 sck.init();
 frame.getContentPane().add(sck);
 frame.addWindowListener(new WindowAdapter()
 {
  public void windowClosing(WindowEvent we)
 { System.exit(0); }
}
);
 frame.setSize(300, 100);
 frame.show();
}
}
Об авторе
Random Walk Computing это наибольшая консалтинговая фирма в Нью Йорке, специализирующаяся на Java/CORBA решениях для предприятий. Известные своим выдающимся знанием Java, консультанты Random Walk публикуются и выступают на самых престижных форумах мира. Для связи с Random Walk используйте 
javaqa@javaworld.com.
Reprinted with permission from the March 2000 edition of JavaWorld magazine.
Copyright © ITworld.com, Inc., an IDG Communications company.
View the original article at: http://www.javaworld.com/javaworld/javaqa/1999-09/02-qa-hotkeys.html
Назад |
 Содержание |
 Вперед