powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Menu и горячие клавиши
8 сообщений из 8, страница 1 из 1
Menu и горячие клавиши
    #33443628
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Предлагаю размяться с утреца, а заодно помочь мне:

Я создаю 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
Menu и горячие клавиши
    #33443693
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
Menu и горячие клавиши
    #33443714
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Красивенько получается
...
Рейтинг: 0 / 0
Menu и горячие клавиши
    #33444122
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
текущий выбор пункта меню я могу узнать. А как узнать, какие выбраны до того?
Так как в рограмме использую множественный выбор.
...
Рейтинг: 0 / 0
Menu и горячие клавиши
    #33444124
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlukOzaтекущий выбор пункта меню я могу узнать. А как узнать, какие выбраны до того?
Так как в рограмме использую множественный выбор.
поясни
...
Рейтинг: 0 / 0
Menu и горячие клавиши
    #33444136
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.Грасоff™ GlukOzaтекущий выбор пункта меню я могу узнать. А как узнать, какие выбраны до того?
Так как в рограмме использую множественный выбор.
поясни


Метод

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


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

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


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