Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 42
1

События (слушатели / обработчики)

10.11.2014, 14:03. Показов 1633. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Небольшая проблемка встретилась на пути закрепления моих знаний по Java.
Работаю над сам собою придуманым проектом. И угораздило уткнуться носом в такую лажу: есть 2 кнопки read and next, одна вызывает метод который возвращает LinkedList с этим вроде как все нормально, дальше есть вторая кнопка будет перебирать этот список и выводить по одному элементу, пока что тупик в том как из первого обработчика передать список во вторую.. как-то так и та-дааам вот мой мрак который я писал пару дней)))
Java
1
2
3
4
5
6
7
8
9
10
btnRead.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        LinkedList<String> list = line.read(folder.getText());
        }
    });
    btnNext.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        //list
        }
    });
Я всё скидывать наверное не буду, не вижу смысла, но если надо - запилю.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2014, 14:03
Ответы с готовыми решениями:

Слушатели
Поделитесь плиз ссылкой , где можно почитать понятную инфу про обработку событий. Спасибо!

Слушатели для кнопок
Пытаясь написать код для калькулятора, я создавал слушателей для кнопок, но кнопки не видят этих...

Подскажите как написать обработчики события
на форме есть три кнопки: &quot;скрыть&quot;, &quot;показать&quot; и &quot;очистить&quot; и textbox. Нужно для каждой кнопки...

Назначить разные обработчики события Click кнопкам в UserControl
У меня имеется usercontrol на нем 2 кнопки, usercontrol перенес на форму. Вопрос: как мне сделать...

11
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
10.11.2014, 15:06 2
Например, заведите поле в основном классе (в форме), и ему и присваивайте этот LinkedList.
0
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 42
10.11.2014, 15:57  [ТС] 3
Цитата Сообщение от turbanoff Посмотреть сообщение
Например, заведите поле в основном классе (в форме), и ему и присваивайте этот LinkedList.
эм, а можно пример? не очень понял о чем вы.
0
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
10.11.2014, 17:00 4
moramar, Вот этот код, который вы привели. Он у вас написан в каком-то классе.
В этом же классе и заведите поле LinkedList<String> list. И в этих методах записывайте/читайте значение этого поля.
0
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 42
10.11.2014, 19:57  [ТС] 5
Цитата Сообщение от turbanoff Посмотреть сообщение
moramar, Вот этот код, который вы привели. Он у вас написан в каком-то классе.
В этом же классе и заведите поле LinkedList<String> list. И в этих методах записывайте/читайте значение этого поля.
тьфу, гениальное просто как говориться. я сразу так и хотел сделать, начал когда писать обработчик на вторую кнопку - подсветило красным, подумал что ни-ни) спасибо.

Добавлено через 1 час 49 минут
Java
1
2
3
4
5
6
7
8
9
10
11
12
btnRead.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        list = line.read(folder.getText());
        }
    });
    btnNext.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        if(iterator.hasNext()){
            text.setText(iterator.next());          
        }           
        }
    });
думал так прокатит, но не тут то было. как можно реализовать вывод элементов, из списка, при каждом клике по кнопке по одному(следующему).
0
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
10.11.2014, 23:08 6
moramar, Так а что не получается? вроде правильно написано.
Покажите на всякий случай код, где создается iterator.
0
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 42
11.11.2014, 13:01  [ТС] 7
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
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
61
62
63
 public class DFrame {
 
    public static void main(String[] args) {
    SimpleFrame dFrame = new SimpleFrame("Yo yo");
    
    }
 
 
}
class SimpleFrame extends JFrame{
    private String title = "Default title"; 
    Container panel = new JPanel();
    JButton btnRead = new JButton("Read");
    JButton btnNext = new JButton("Next");
    JTextArea text = new JTextArea("Добро пожаловать");
    JTextArea folder = new JTextArea("Введите название файла");
    IOoperation line = new IOoperation();
    List<String> list = new LinkedList<>();
    Iterator<String> iterator = list.iterator();
 
    private void constructFrame(){
    
    setTitle(title);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);
    Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize();
    double width = scrSize.getWidth();
    double height=scrSize.getHeight();
    setSize((int) width / 2 - getWidth() / 2, (int) height / 2 - getHeight() / 2);
    setLocation((int) width / 2 - getWidth() / 2, (int) height / 2 - getHeight() / 2);
    setResizable(false);
    this.add(panel, BorderLayout.CENTER);
    panel.add(btnRead, BorderLayout.SOUTH);
    panel.add(text);
    panel.add(folder);
    panel.add(btnNext);
    btnRead.setAlignmentX(BOTTOM_ALIGNMENT);
    text.setAlignmentX(TOP_ALIGNMENT);
    btnRead.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        list = line.read(folder.getText());
        }
    });
    btnNext.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        if(iterator.hasNext()){
            text.setText(iterator.next());          
        }           
        }
    });
    
    
    }
    SimpleFrame(){
    super();
    constructFrame();
    }
    SimpleFrame(String t){
    super();
    title=t;
    constructFrame();
    }
}
воть, решил не пудрить мозг и всё запилить)) надо будет ещё поломать голову над расположением кнопок/текстового поля, но то я сам думаю справлюсь.
0
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
11.11.2014, 22:23 8
moramar, После того как вы присвоили новое значение полю list, iterator надо тоже заново переприсвоить.
0
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 42
13.11.2014, 01:22  [ТС] 9
Java
1
2
3
4
5
6
7
8
9
10
this.add(panel);
    panel.setLayout(new BorderLayout());
    panel.add(text, BorderLayout.CENTER);
    panel.add(folder, BorderLayout.NORTH);
    
    panel2.setLayout(new FlowLayout());
    panel.add(panel2, BorderLayout.SOUTH);
            
    panel2.add(btnRead, FlowLayout.LEFT);
    panel2.add(btnNext, FlowLayout.RIGHT);
немного не по теме, но тот же проект. выбивает эксепшен(IllegalArgumentException), не вижу в чем проблема, вроде все по логике...
0
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
13.11.2014, 02:40 10
moramar, на какой строчке? Какое message в исключении?
0
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 42
13.11.2014, 11:22  [ТС] 11
Exception in thread "main" java.lang.IllegalArgumentException: illegal component position
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at dictionary.SimpleFrame.constructFrame(DFrame.java:60)
at dictionary.SimpleFrame.<init>(DFrame.java:88)
at dictionary.DFrame.main(DFrame.java:22)

Добавлено через 1 минуту
я пытался изменить только расположение компонентов, до этого все работало.
0
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 42
14.11.2014, 21:33  [ТС] 12
разобрался.
0
14.11.2014, 21:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.11.2014, 21:33
Помогаю со студенческими работами здесь

Напишите функции-обработчики для следующего события: onMouseOver
Напишите функции-обработчики для следующего события: onMouseOver При наведении курсора мыши на...

Создайте обработчики события нажатия кнопкой мыши на поля ввода, которые будут выводить в текущее поле ввода eгo номер
Разместите на форме ряд полей ввода ( TextBox ) . Создайте обработчики события нажатия кнопкой мыши...

Сервлеты, слушатели, jdbc
Такое дело, необходимо выполнить учебный проект - веб приложение, студенты, пары, преподы и т.д....

Слушатели списка со своей разметкой
Вопрос вот в чем: создаю ListView, создаю адаптер, работающий с моей разметкой. Потом подключаю...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru