Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
SysOp
 Аватар для IamSCORPION
42 / 41 / 5
Регистрация: 13.04.2009
Сообщений: 274

энное количество JLabel() + actionPerformed

09.05.2010, 22:15. Показов 2177. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создаю программу и зашел в тупик. Я достаю из БД энное количество фамилий студентов и мне необходимо разместить их на пенели через JLabel() вместо "СН-22" и чтобы чтобы на каждую JLabel() был actionPerformed () чтобы при нажатии на одну из фамилий студентов выводились его данные на другую панель. Подскажите как это сделать? Спасибо.
Миниатюры
энное количество JLabel() + actionPerformed  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.05.2010, 22:15
Ответы с готовыми решениями:

Про actionPerformed
Здравствуйте и так к делу мне нужно чтобы в JTextField text = new JTextField(); выходило вот так : 124325 А пока получается...

ActionPerformed и WebView.getEngine().load();
Всем добра, помогите возможно с самым тупым вопросом, я добавляю слушателя ActionListener к кнопке, в методе actionPerformed слушателя я...

как вывести на экран через запятую энное количество членов прогрессии, если это количество я ввожу с клавиатуры?
подскажите

8
 Аватар для Lendon
34 / 34 / 10
Регистрация: 11.05.2010
Сообщений: 110
11.05.2010, 14:11
Из стандартной документации:
"public class JLabel
extends JComponent
implements SwingConstants, Accessible

A display area for a short text string or an image, or both. A label does not react to input events. As a result, it cannot get the keyboard focus. A label can, however, display a keyboard alternative as a convenience for a nearby component that has a keyboard alternative but can't display it."

Единственный способ вижу это добавить MouseListener на панель ы проверять координаты, но это через анус))

Добавлено через 5 минут
В этом случае можна будет создать обьект, который будет инкапсулировать JLabel и держать в себе его координаты.

Добавлено через 29 минут
Либо брать сразу каждый раз:
Java
1
2
3
Rectangle r = JLabel.getBounds();
 this.x = r.x;
 this.y = r.y;
А потом уже проверять
Java
1
2
3
4
if( (event.getX() > x && event.getX() < x+r.width)
 && (event.getY() > y && event.getY() < y+r.height) ) {
//...
}
1
SysOp
 Аватар для IamSCORPION
42 / 41 / 5
Регистрация: 13.04.2009
Сообщений: 274
11.05.2010, 16:37  [ТС]
Уже не нужно. Зделал через JTable()
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
12.05.2010, 11:00
Цитата Сообщение от Lendon Посмотреть сообщение
Единственный способ вижу это добавить MouseListener...
Мысль правильная. Только не
Цитата Сообщение от Lendon Посмотреть сообщение
...на панель ы проверять координаты
это, действительно,
Цитата Сообщение от Lendon Посмотреть сообщение
...через анус))
А вот добавлять слушателя непосредственно для метки - это единственно верное решение.
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
public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            final JFrame f = new JFrame("test");
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 10));
            MouseAdapter ma = new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    JLabel l = (JLabel) e.getSource();
                    JOptionPane.showMessageDialog(f, "Label: " + l.getText());
                }
            };
            for (int i = 0; i < 20; i++) {
                JLabel l = new JLabel("Test #" + i);
                l.setBorder(BorderFactory.createLineBorder(Color.BLACK));
                l.addMouseListener(ma);
                f.add(l);
            }
            f.pack();
            f.setVisible(true);
        }
    });
}
0
 Аватар для Lendon
34 / 34 / 10
Регистрация: 11.05.2010
Сообщений: 110
12.05.2010, 13:40
aleksandy все верно, только чтобы корректно работало, нужно добавить панель, а на нее метки уже.
Java
1
2
3
4
5
6
7
8
9
JPanel panel = new JPanel();
        for(int i = 0; i < 10; i++) {
            JLabel l = new JLabel("JLabel: " + i);
            l.setBorder(BorderFactory.createLineBorder(Color.BLUE));
            l.addMouseListener(ma);
            panel.add(l);
        }
        mainFrame.add(panel);
///...
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
13.05.2010, 12:05
Не совсем понял нафига тут нужна панель? У меня и так все прекрасно работает...
0
 Аватар для Lendon
34 / 34 / 10
Регистрация: 11.05.2010
Сообщений: 110
13.05.2010, 13:29
Ну во-первых на фрейме лепить компоненты это плохой стиль.
Во-вторых я пробовал сам спецом написать прогу, прилепил сперва на фрейм - не работало, а на панели норм. Даже не знаю чего так )
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
14.05.2010, 05:29
Цитата Сообщение от Lendon Посмотреть сообщение
Ну во-первых на фрейме лепить компоненты это плохой стиль.
Это кто это тебе сказал? И чем аргументировал? А, во-вторых, JFrame#add() ничего не добавляет в сам фрейм...

Цитата Сообщение от Lendon Посмотреть сообщение
Во-вторых я пробовал сам спецом написать прогу, прилепил сперва на фрейм - не работало, а на панели норм. Даже не знаю чего так )
А код не покажешь?
0
 Аватар для Lendon
34 / 34 / 10
Регистрация: 11.05.2010
Сообщений: 110
14.05.2010, 13:06
aleksandy, а не, ты знаешь я походу лоханулся. Просто JLabel как то коряво реагирует на нажатия кнопки мыши, и я тогда щелкал, но реакции небыло. На самом деле есть, но корявая. =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.05.2010, 13:06
Помогаю со студенческими работами здесь

Исчезло энное количество гб на SSD Vertex 3 OCZ 240гб, в чём причина?
Доброго времени суток, поставил ssd как основной накопитель, других накопителей нет , установил всё по науке ( настройки в биосе...

Дан массив целых чисел а1,…, а(энное). Подсчитать количество подряд идущих нечетных элементов
помогите пожалуйста. Добавлено через 5 часов 42 минуты Help!

Создание actionPerformed при наследовании JButton
Доброе время суток! Кратко о проблеме: Есть панель на которою будут добавлятся кнопки(имеется ввиду денамически),скоко угодно. ...

Не срабатывает метод actionPerformed по таймеру из inner класса, пример из Хортсмана
опять таки пример из книги, всё компилируется но метод actionPerformed не выполняется, разница в моём исполнении и в книжном лишь в...

Не работает: Button.addActionListener(new ActionListener() { public void actionPerformed(actionEvent evt) { } });
Button.addActionListener(new ActionListener() { public void actionPerformed(actionEvent evt) { } ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru