Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как включить addActionListener в JMenu (ArrayList), Массивы в Меню 
V
    Опции темы
KISha
Дата 11.2.2008, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 31.12.2007

Репутация: нет
Всего: нет



Помогите ,  при выборке пункта меню как включить функцию 
addActionListener ? smile 


Код

arr=new ArrayList();

arr.add("New");
arr.add("Open");
arr.add("_");
arr.add("Exit");


mn=new JMenu("File");
JMenuBar mnBar = new JMenuBar();
JMenuItem mi;          
  for(i=0;i<arr.size();i++)
{

            mi = mn.add(new JMenuItem(arr.get(i).toString()));
// как включить addActionListener  ?  :dash1 
// здесь меню отрожается , но при выборке молчат, я знаяю почему оно молчат
// и я не смог как вкличить addActionListener  
}
mnBar.add(mn);


/**********************************/
 если такой код , тогда все ОК , 
 вообщем мне надо автоматизировать Меню


Код

            Menu mn=new Menu("File");
            MenuBar mnBar = new MenuBar();
            MenuItem mi;
           
            mi = mn.add(new MenuItem("New")); 
            mi.addActionListener(new ActionListener() 
              {
                 public void actionPerformed(ActionEvent e) 
                   {
                       newFile();           
                     }
               });
            mi = mn.add(new MenuItem("Open")); 
            mi.addActionListener(new ActionListener() 
              {
                 public void actionPerformed(ActionEvent e) 
                   {
                       openFile();           
                     }
               });
            mi = mn.add(new MenuItem("-")); 
            mi = mn.add(new MenuItem("Exit")); 
            mi.addActionListener(new ActionListener() 
              {
                 public void actionPerformed(ActionEvent e) 
                   {
                       System.exit(0);           
                     }
               });


 smile 


Это сообщение отредактировал(а) tux - 11.2.2008, 08:47
PM MAIL   Вверх
tux
Дата 11.2.2008, 08:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: нет
Всего: 132



KISha, пользуйся кнопкой "Код".
PM MAIL Skype GTalk Jabber YIM   Вверх
dorogoyIV
Дата 11.2.2008, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 36
Всего: 46



Код

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

class MyMenu extends JMenuBar
             implements ActionListener
{
 MyMenu()
 {
  JMenu menu=new JMenu("Menu");

  String [] s={"New", "Open", "_", "Exit"};
  JMenuItem [] items=new JMenuItem [s.length];
  for(int i=0; i < s.length; i++)
  {
   items [i]=new JMenuItem(s [i]);
   menu.add(items [i]);
   items [i].addActionListener(this);
  }
  add(menu);
 }

 public void actionPerformed(ActionEvent e)
 {
  System.out.println(((JMenuItem)e.getSource()).getText());
 }

 public static void main(String [] args)
 {
  JFrame f=new JFrame();
  f.setVisible(true);
  f.setJMenuBar(new MyMenu());
 }
}


PM MAIL   Вверх
KISha
Дата 13.2.2008, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 31.12.2007

Репутация: нет
Всего: нет



dorogoyIV спасибо за код, все получилось!!!

PM MAIL   Вверх
Acer
Дата 13.3.2008, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: нет
Всего: 8



Простите, а мона еще раз для тех кто в танке?..
Мне просто не оч понятна одна вещь.
В коде, который написал dorogoyIV, реально делать отдельный action для каждого MenuItem ? Или они все однотипные?
И еще, какое меню лучше использовать? Из java.awt или из javax.swing ?
PM MAIL   Вверх
dorogoyIV
Дата 13.3.2008, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 36
Всего: 46



Цитата(Acer @  13.3.2008,  01:29 Найти цитируемый пост)
Простите, а мона еще раз для тех кто в танке?..

Код

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

class MyMenu extends JMenuBar
             implements ActionListener
{
 String [] s=new String []
             {"Save File", "Open File", "Exit"};

 MyMenu()
 {
  JMenu menu=new JMenu("Menu");

  JMenuItem [] items=new JMenuItem [s.length];

  for(int i=0; i < s.length; i++)
  {
   items [i]=new JMenuItem(s [i]);
   menu.add(items [i]);
   items [i].addActionListener(this);
  }
  add(menu);
 }

 public void actionPerformed(ActionEvent e)
 {
  String text=((JMenuItem)e.getSource()).getText();

  if(text.equals("Save File"))
  {
   new JFileChooser().showSaveDialog(null);
  }

  if(text.equals("Open File"))
  {
   new JFileChooser().showOpenDialog(null);
  }

  if(text.equals("Exit"))
  {
   System.exit(0);
  }
 }

 public static void main(String [] args)
 {
  JFrame f=new JFrame();
  f.setJMenuBar(new MyMenu());
  f.setBounds(100,100,400,300);
  f.setVisible(true);
  f.setDefaultCloseOperation(3);
 }
}


Цитата(Acer @  13.3.2008,  01:29 Найти цитируемый пост)
И еще, какое меню лучше использовать? Из java.awt или из javax.swing ?

про AWT пора потихоньку забывать  smile 

PM MAIL   Вверх
Acer
Дата 13.3.2008, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: нет
Всего: 8



Я так и думал smile
Спасибо огромное
PM MAIL   Вверх
dorogoyIV
Дата 14.3.2008, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 36
Всего: 46



Acer, что то не получается тебе в личку ответить
Код

String s="aB";
if(s.equalsIgnoreCase("Ab")
{
 ...
}

а в моем примере можешь просто писать
Код

if(text.equals(s[0])) // s[1]  s[2]
{
 ...
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0770 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.