Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2010, 19:21   #1
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию Кнопка на Яве

Хотел уточнить пару непонятных моментов по коду:
Код:
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() прокоментируйте пожалуйста, не понятно что здесь происходит.

Заранее благодарю.
Syltan вне форума Ответить с цитированием
Старый 21.06.2010, 20:30   #2
BleStaR
Форумчанин
 
Регистрация: 25.09.2009
Сообщений: 234
По умолчанию

1) Событие (event) в библиотеке AWT возникает при воздействии на компонент какими-нибудь манипуляциями мышью, при вводе с клавиатуры, при перемещении окна, изменении его размеров.
Все события в AWT классифицированы. При возникновении события исполняющая система Java автоматически создает объект соответствующего событию класса. Этот объект не производит никаких действий, он только хранит все сведения о событии.
События типа ActionEvent проявляются только в контейнерах Button, List, TextField.

2) new Runnable() - вкратце, благодаря этой строке твоя форма будет работать в отдельном потоке.
3)
Код:
n2.addActionListener(new ActionListener(){//добавляем слушателя для кнопки
        public void actionPerformed(ActionEvent ae){//переопределяем функцию обработки события
            jlab.setText("Нажата кнопка №2");//код, которой будет выполняться при срабатывании события
        }
    });
без добавления нужного слушателя, компонент не будет реагировать на события. При добавлении функции, объект события вызывает некую функцию, в нашем случае это функция ActionPerformed.

Последний раз редактировалось Stilet; 22.06.2010 в 17:06.
BleStaR вне форума Ответить с цитированием
Старый 22.06.2010, 16:43   #3
masterito
Новичок
Джуниор
 
Регистрация: 25.05.2010
Сообщений: 2
По умолчанию

По поводу того, почему Swing нужно запускать в другом потоке хорошо написано здесь:
http://developers.sun.ru/content/view/159/
masterito вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простое меню на Яве Syltan Общие вопросы по Java, Java SE, Kotlin 4 01.06.2010 20:35
Первая прога с переменными на Яве Syltan Общие вопросы по Java, Java SE, Kotlin 7 15.05.2010 09:57
как написать учебник на яве Screamo Общие вопросы по Java, Java SE, Kotlin 1 30.04.2010 13:38
ТРАНСЛИТЕРАЦИЯ НА ЯВЕ! 4ika Общие вопросы по Java, Java SE, Kotlin 3 24.02.2010 19:23
Немогу запустить комманду. Программистам на яве->сюда) Stema Общие вопросы по Java, Java SE, Kotlin 15 19.10.2007 01:39