Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Menu и горячие клавиши / 8 сообщений из 8, страница 1 из 1
19.12.2005, 11:26
    #33443628
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Menu и горячие клавиши
Всем привет.
Предлагаю размяться с утреца, а заодно помочь мне:

Я создаю CheckBoxMenu. Так как пунктов меню много, то создаю в цикле.
Но не могу правильно преобразовать код клавиши в тип Character.

(Надо, чтобы горячие клавиши были: 1,2,3 и т.д.).
Пробывала по-разному, вместо клавиш пишет что попало.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
     private  String[] strks = {" Петя"," Вася"," Жора"};
    ...
     public  JMenu CheckBoxMenuItem()
    {
        ksMenu =  new  JMenu(" Выбор ");
        ksMenu.setFont( new  Font("VERNADA", Font.PLAIN,  12 ));
        ksMenu.setForeground( new  Color( 0 , 0 , 102 ));

         for ( int  i= 0 ; i<strks.length;i++)
        {
             if (i== 0 )
            {
                ksMenu.add(ks(strks[ 0 ], new  Character(( char )(i))));
                ksMenu.addSeparator();
            }
             else 
            {
                ksMenu.add(ks(strks[i], new  Character(( char )(i))));
            }
        }
         return  ksMenu;
    }
     public  JCheckBoxMenuItem ks(String name,Character kstroke)
    {
        ActionListener actionPrinter =  new  ActionListener(  )
        {
             public   void  actionPerformed(ActionEvent e)
            {
                Object source = e.getActionCommand();
                System.out.println(e.getActionCommand());
            }
        };
        JCheckBoxMenuItem ksmenu =  new  JCheckBoxMenuItem(name);
        ksmenu.setHorizontalTextPosition(JMenuItem.RIGHT);
        ksmenu.setAccelerator(KeyStroke.getKeyStroke (kstroke,Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
        ksmenu.addActionListener(actionPrinter);
         return  ksmenu;
    }

...
Рейтинг: 0 / 0
19.12.2005, 11:45
    #33443693
А.Грасоff™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Menu и горячие клавиши
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
 package  test.swing.glukoza;

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

 public   class  HotKeys  extends  JFrame  implements  ActionListener {
   public  HotKeys() {
     super ("HotKeys Example");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JMenu menu = createMainMenu();
    JMenuBar menuBar =  new  JMenuBar();
    menuBar.add(menu);
    setJMenuBar(menuBar);
  }

   private  String[] strks = {"Петя", "Вася", "Жора"};

   private  JMenu createMainMenu() {
    JMenu menu =  new  JMenu("Выбор");

     for  ( int  i =  0 , l = strks.length; i < l; i++) {
      String strk = strks[i];
      JMenuItem menuItem = createMenuItem(strk, i);
      menu.add(menuItem);

       if  (i ==  0 ) {
        menu.addSeparator();
      }
    }

     return  menu;
  }

   private  JMenuItem createMenuItem(String title,  int  i) {
    JCheckBoxMenuItem menuItem =  new  JCheckBoxMenuItem(title);
    menuItem.setHorizontalTextPosition(JMenuItem.RIGHT);
    menuItem.setAccelerator(KeyStroke.getKeyStroke(Integer.toString(i)));
    menuItem.addActionListener( this );
     return  menuItem;
  }

   public   void  actionPerformed(ActionEvent e) {
    System.out.println(e.getActionCommand());
  }

  /* main */
   public   static   void  main(String[] args) {
    Runnable runner =  new  Runnable() {
       public   void  run() {
        HotKeys frame =  new  HotKeys();

        frame.setSize( 250 ,  150 );
        frame.setVisible(true);
      }
    };
    EventQueue.invokeLater(runner);
  }
}

--
WTF?
...
Рейтинг: 0 / 0
19.12.2005, 11:51
    #33443714
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Menu и горячие клавиши
Спасибо. Красивенько получается
...
Рейтинг: 0 / 0
19.12.2005, 13:40
    #33444122
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Menu и горячие клавиши
текущий выбор пункта меню я могу узнать. А как узнать, какие выбраны до того?
Так как в рограмме использую множественный выбор.
...
Рейтинг: 0 / 0
19.12.2005, 13:41
    #33444124
А.Грасоff™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Menu и горячие клавиши
GlukOzaтекущий выбор пункта меню я могу узнать. А как узнать, какие выбраны до того?
Так как в рограмме использую множественный выбор.
поясни
...
Рейтинг: 0 / 0
19.12.2005, 13:44
    #33444136
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Menu и горячие клавиши
А.Грасоff™ GlukOzaтекущий выбор пункта меню я могу узнать. А как узнать, какие выбраны до того?
Так как в рограмме использую множественный выбор.
поясни


Метод

Код: plaintext
1.
2.
3.
4.
 public   void  actionPerformed(ActionEvent e) {
    System.out.println(e.getActionCommand());
  }


фиксирует какой пункт меню выбран на данный момент.
А как мне узнать, что галочка стоит еще где-то?
...
Рейтинг: 0 / 0
19.12.2005, 14:02
    #33444186
А.Грасоff™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Menu и горячие клавиши
GlukOza
фиксирует какой пункт меню выбран на данный момент.
А как мне узнать, что галочка стоит еще где-то?
хм. может, проще завести какой-то список для хранения состояний?
отметили чекбокс - записали в список, что такое-то выбрано.
сняли отметку - удалили из списка соотв. элемент.
...
Рейтинг: 0 / 0
19.12.2005, 14:19
    #33444240
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Menu и горячие клавиши
А.Грасоff™ GlukOza
фиксирует какой пункт меню выбран на данный момент.
А как мне узнать, что галочка стоит еще где-то?
хм. может, проще завести какой-то список для хранения состояний?
отметили чекбокс - записали в список, что такое-то выбрано.
сняли отметку - удалили из списка соотв. элемент.

... возможно так и сделаю, если не найду чего-нибудь еще...
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Menu и горячие клавиши / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]