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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кнопка на Яве 
:(
    Опции темы
Syltan
Дата 21.6.2010, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Хотел уточнить пару непонятных моментов по коду:
Код

package uu;
import java.awt.*; //Для размещения компонентов на фрейме
import java.awt.event.*; //Определяет интерфейс ActionListener и класс Actionevent
import javax.swing.*;

class Main{
    JLabel jlab;
    Main(){

    JFrame obj = new JFrame("Привет моё окно Ява");
    obj.setLayout(new FlowLayout());
    obj.setSize(220,90);
    //Для того чтоб убрать из процессов после закрыти окна программы
    obj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   //Создаю 2 кнопки
    JButton n1 = new JButton("Начало");
    JButton n2 = new JButton("Конец");
    n1.addActionListener(new ActionListener(){
        //Этот метод вызывается в результате щелчка на кнопке
        public void actionPerformed(ActionEvent ae){
         jlab.setText("Нажата кнопка №1");
        }
    });

    n2.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ae){
            jlab.setText("Нажата кнопка №2");
        }
    });
    obj.add(n1);
    obj.add(n2);
    jlab = new JLabel("Нажмите кнопку");
    obj.add(jlab);
    obj.setVisible(true);
    }

    public static void main(String[] args) {
       SwingUtilities.invokeLater(new Runnable(){
           public void run(){
               new Main();
           }
      });
    }
}



1) Что означает ActionEvent ae? Что Такое ActionEvent и что такое ае, что попадает в ае, в этот параметр?
2) Что такое new Runnable() зачем оно нужно в главной функции меин?
3)Вот эту строку n2.addActionListener(new ActionListener() прокоментируйте пожалуйста, не понятно что здесь происходит.

Заранее благодарю.

PM MAIL   Вверх
jk1
Дата 21.6.2010, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

n2.addActionListener(new ActionListener()

Этой строкой добавляется обработчик событий, которые генерирует компонент. Например у кнопки это будет нажатие на кнопку. Обработчиков можно добавлять любое количество и каждый из них будет извещен о том, что кнопка нажата. При этом у обработчика будет вызван метод actionPerformed(ActionEvent ae). ActionEvent в данном случае содержит информацию о том, какой объект был источником события и когда оно произошло. 
На самом деле в Swing реализовано большое количество самых разных событий и классов-обработчиков. Подробнее об обработке событий в Swing читайте тут.
Цитата

Что такое new Runnable() зачем оно нужно в главной функции меин

Все дело в том, что Swing по своей природе однопоточен и всю работу с его компонентами надо производить в специальном потоке, который называется EDT. Вот этот код
Код

SwingUtilities.invokeLater(new Runnable(){
           public void run(){
               new Main();
           }
      });

Заставляет выполнить содержимое метода Run в том самом потоке. Если это ограничение не соблюдать, возможно появление труднопредсказуемых неповторяемых ошибок в самых неожиданных местах.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
major32
Дата 9.7.2010, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

    public static void main(String args[]) {
 
        Thread thr = new Thread();
        thr.start();

    }

    public void run() {
        this.setVisible(true);
    }

PM MAIL   Вверх
vatuska
Дата 19.9.2010, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток, в java новичок, платформа NetBeans 6.9.1. Что нужно написать в обработчике нажатия на кнопку, чтобы после нажатия окно закрылось? Помимо этого в обработчике выполняются ещё некоторые действия. 
PM MAIL ICQ   Вверх
mstalker26
Дата 19.9.2010, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



смотря какое окно, setVisible(false) думаю должно хватить.

Это сообщение отредактировал(а) mstalker26 - 19.9.2010, 20:51
--------------------
Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
PM   Вверх
armixx
Дата 19.9.2010, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый вечер.
Закрыть или уничтожить?
У меня есть окна ( диалоги), которые я гашу и открываю по setVisible.
Если прекратить работу, то - dispose();
Примерно так:
    new JButton().addActionListener
    (new ActionListener()
     {
        public void actionPerformed(ActionEvent ae)
        {
            ...
            window.dispose();
         }
      });


Дополнительно:
при этом вызывается WindowListener() и передаётся WindowEvent в 
метод windowClosing, в котором можно обработать закрытие окна).
Примечание:
Вместо WindowListener() проще использовать WindowAdapter(), у которого достаточно перекрыть только требуемый метод.
   Процедура добавления слушателя "окна" может выглядеть так:
   
   window.addWindowListener(new WindowAdapter()
   {
      @Override
      public void windowClosing(WindowEvent e)
      {
         // Нас хотят закрыть.         
       }
    
      @Override     
       public void windowClosingWindowEvent e)
       {
          // Нас закрыли.
        }     
     });

Добавлено через 1 минуту и 48 секунд
Виноват!
2-й метод:
public void windowClosed(WindowEvent e)
 
PM MAIL   Вверх
Su_
Дата 19.9.2010, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если отдельная кнопка то:

Код

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);        // TODO add your handling code here:
    }



Если кнопка-крестик, то через Adapter как описал armixx


--------------------
user posted image

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1240 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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