Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 12

Как забрать данные из ActionListener

11.03.2015, 05:50. Показов 3721. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый, интересует как забрать данные из ActionListener? По нажатию кнопки забираю данные из текстовых полей, присваиваю их переменным, однако так как метод actionPerformed имеет void(насколько я понимаю), в переменных после нажатия кнопки лежит null. Пробовал завернуть все действия в отдельный метод и вызвать его из кнопки, но я так понял actionPerformed передает void и этому методу и также ничего не выходит.
Вот примеры кода, которые я написал, прошу помочь и разъяснить как реализовать задуманное, я еще в JAVA новичек.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
    
public class reactclas implements ActionListener{
            String FromAct;
            public void actionPerformed(ActionEvent e){
            
        if(e.getSource()==regnown){
                RegData regData = new RegData();
            regData.setLoginreg(logn.getText());
            regData.setPassreg(passn.getText());
            regData.setGrpreg(group.getText());;            
            }
    
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.03.2015, 05:50
Ответы с готовыми решениями:

Как забрать данные из JTextField по нажатию кнопки
Доброе время суток ! Прошу помощи разобраться и какую информацию нужно прочитать чтобы не допускать больше таких ошибок . Ситуация...

Как забрать данные из ячейки?
Проблема состоит в том что у меня есть две таблицы и при выборе в первой таблице поле со второй должны забираться данные и выводится...

Как забрать данные с MySQL в JS?
Я пишу калькулятор, который должен забирать данные с БД и использовать их Например, если брать калькулятор валют (Перевод $ в рубли),...

15
 Аватар для Subik
170 / 45 / 5
Регистрация: 10.01.2013
Сообщений: 424
11.03.2015, 06:00
dumbed, думаю это вам подскажет в каком направлении копать
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
JButton youButton = new JButton("Ваша кнопка");
 
youButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println(Click);
            }
        });
 
 
или
 
JTextField youTextField = new JTextField();
 
JButton youButton2 = new JButton("Ваша кнопка");
 
youButton2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println(youTextField.getText());
            }
        });
0
237 / 236 / 72
Регистрация: 02.07.2013
Сообщений: 881
11.03.2015, 06:56
regnown - это кнопка?
подключите к ней ActionListener

Java
1
regnown.addActionListener(this);
1
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 12
11.03.2015, 07:44  [ТС]
слушатель к кнопке подключен. Суть в том, что нужно чтобы переменные после нажатия кнопки приняли данные и были доступны другому классу. После нажатия кнопки значения в переменных - null.
Также в кнопке вызываю метод складывающий переменные в коллекцию, но они туда не идут. Вот в чем проблема.
0
237 / 236 / 72
Регистрация: 02.07.2013
Сообщений: 881
11.03.2015, 08:02
нужно больше кода, так непонятно в чем проблема
либо не там и не так объявлены переменные, либо не работает лисенер

проверьте в отладке метод actionPerformed срабатывает ?
либо выведите в консоль что-нибудь из этого метода, чтобы понять заходит туда программа или нет
1
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 12
11.03.2015, 08:02  [ТС]
Оу, решил дать переменной значение через
Java
1
regData.setLoginreg(JOptionPane.showInputDialog(null, "Введите логин: "));
А она также не передалась в другой класс в котором лежит переменная. Возможно я что то делаю не так?
Есть класс в котором лежат переменные:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class RegData implements Serializable  {
    
    private String loginreg;
    private String passreg;
    private String grpreg;
    
    public String getLoginreg() {
        return loginreg;
    }
    public void setLoginreg(String loginreg) {
        this.loginreg = loginreg;
    }
    public String getPassreg() {
        return passreg;
    }
    public void setPassreg(String passreg) {
        this.passreg = passreg;
    }
    public String getGrpreg() {
        return grpreg;
    }
    public void setGrpreg(String grpreg) {
        this.grpreg = grpreg;
    }
я подключаю этот класс в другом классе через
Java
1
RegData regData = new RegData();
Сразу после
Java
1
regData.setLoginreg(JOptionPane.showInputDialog(null, "Введите логин: "));
Делаю проверку, что там лежит
Java
1
System.out.println("Данные из опшенпейна:" +regData.getLoginreg());
Все проходит на ура, там то что нужно.
При проверке внутри класса RegData
Java
1
System.out.println("Логин из regData "+getLoginreg());
Там лежит null. Как сделать, чтобы в классе RegData в переменной лежало, что забрал слушатель или JOptionPane.showMessageDialog ?
0
237 / 236 / 72
Регистрация: 02.07.2013
Сообщений: 881
11.03.2015, 08:30
Цитата Сообщение от dumbed Посмотреть сообщение
regData.setLoginreg
Вы устанавливаете значение переменной объекта regData

если хотите чтобы это была переменная класса сделайте ее static
Java
1
private static String loginreg;
1
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 12
11.03.2015, 08:52  [ТС]
Да, со static переменные принимают значения текстовых полей. Но только один раз по нажатию кнопки. Последующие нажатия не переписывают значения переменных, а println выдает со второго нажатия пустоту, не null - а просто ничего не пишет.
0
 Аватар для Subik
170 / 45 / 5
Регистрация: 10.01.2013
Сообщений: 424
11.03.2015, 09:02
Цитата Сообщение от dumbed Посмотреть сообщение
Последующие нажатия не переписывают значения переменных
Естественно, они же static

К тому же, как я понял вы делаете форму авторизации.
Так за чем вам их перезаписывать?
Один раз получили логин и пароль, и готово. Далее уже работаете с полученными данными
1
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 12
11.03.2015, 09:08  [ТС]
Добавлено через 3 минуты
Цитата Сообщение от Subik Посмотреть сообщение
К тому же, как я понял вы делаете форму авторизации. static
Это форма регистрации, по задумке, переменные сериализуются в файл, а потом уже на этапе авторизации из этого файлика будет вытягиваться информация.
Выходит static не выход, переменные не сериализуются, а также в случае неверного ввода в окне авторизации - уже не исправить будет, переменные приняли значения и повисли.
Можете что нибудь еще подсказать?
0
 Аватар для Subik
170 / 45 / 5
Регистрация: 10.01.2013
Сообщений: 424
11.03.2015, 09:15
Либо можете попробовать, сделать вот так


Создаете интерфейс
Java
1
2
3
4
public interface OnMessage {
   public void login(String login);
   public void pass(String pass);
}


'В классе, в котором у вас кнопка
Java
1
2
3
4
5
6
7
8
private final OnMessage onMessage;
 
    public GetRequest(OnMessage onMessage) { //конструктор
        this.onMessage = onMessage;
    }
 
// внутри вашего слушателя
onMessage.login(regData.getLoginreg());


В классе RegData
Java
1
2
3
4
5
6
new OnMessage() {
            @Override
            public void login(String login) {
                   System.out.println("Логин из regData " + login);
            }
}


Добавлено через 1 минуту
Ну и тоже самое с pass
1
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 12
11.03.2015, 09:26  [ТС]
Никогда не работал с интерфейсами и очень мало про них знаю, но сейчас нет времени читать, а реализовать задумку очень хочется. Может мне скинуть свой проект на гитхаб, а вы тыкнете дураку где именно создавать интерфейс и куда и что писать?
0
 Аватар для Subik
170 / 45 / 5
Регистрация: 10.01.2013
Сообщений: 424
11.03.2015, 09:39
dumbed, Прикрепить ваш проект, тут.
Как будет время, сделаю. Просто я щас на работе, и времени тоже не много

Добавлено через 1 минуту
Ну или может, кто еще вам поможет.
1
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 12
11.03.2015, 09:45  [ТС]
Спасибо огромное! Папку с проектом от эклипса запихнул в архив и приложил к сообщению.
Вложения
Тип файла: zip AutorizationModule.zip (65.0 Кб, 10 просмотров)
0
 Аватар для Subik
170 / 45 / 5
Регистрация: 10.01.2013
Сообщений: 424
11.03.2015, 10:45
Я вам конечно добавил интерфейс.
Но у вас там какой то * твориться, советую взять и переписать все заново.

p.s. если куда то не туда добил интерфейс, просто посмотрите, как оно работает и сделайте по аналогии
Вложения
Тип файла: zip AutorizationModule.zip (70.6 Кб, 10 просмотров)
0
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 12
11.03.2015, 10:50  [ТС]
Спасибо, буду разбираться
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.03.2015, 10:50
Помогаю со студенческими работами здесь

Как забрать данные из ссылки?
Подскажите пожалуйста, есть сайт с такой ссылкой. https://site.ru?num=121241&id=2512 Как забрать это число 121241 и внести в переменную...

Как правильней забрать данные
Доброе утро, уважаемые форумчане!) Столкнулся с токой проблемой, что не знаю как ПРАВИЛЬНЕЙ забрать id категории с url страницы. Вот,...

Как забрать из clipboard данные?
Подскажите, плиз, как забрать из буфера обмена (clipboard) данные? Я пользуюсь my_obj.clipboardData.getData('Text'), которая возвращает...

Как правильно забрать данные
Доброе вечер, уважаемые форумчане!) Столкнулся с токой проблемой, что не знаю как ПРАВИЛЬНО забрать часть строки из строки. Вот, к...

Как забрать данные из отработавшего потока?
Код в потоке сгенерил массив интов и завершился.Как забрать данные? ЗЫ:в жабе есть какой то аналог WaitForSingleObject ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru