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

Создание actionPerformed при наследовании JButton

24.11.2012, 19:21. Показов 3181. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток!

Кратко о проблеме:

Есть панель на которою будут добавлятся кнопки(имеется ввиду денамически),скоко угодно.
Кнопка будет открывать новою форму(уже создану), я решил ето организовать наследовав Jbutton, но не могу найти решение как зделать так чтобы при клике на наследованою кнопку отрывалась форма.

Клас кнопки:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class BtnUsers extends JButton {
 
    private SpeakFrame frame;
    public BtnUsers(String title,SpeakFrame frame) {
        setText(title);
        this.frame = frame;
        addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
            System.out.println("----");//  такой метод не подходит 
                                       //  тут нельзя полчить доступ к переменной frame 
            //frame.setVisible(true);  //  я знаю почему!! не ненадо мне ето обяснять .....
            }
        });
    }   
}
Код добавления кнопок:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
JButton btnNewButton = new JButton("New button");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                BtnUsers b =  new  BtnUsers(" ",null);
                b.setText("127.0.0.1:6666");
                b.setSize(130, 23);
                desktopPane.add(b); 
                scrollPane.setVerticalScrollBar(j); // обновляет панель з кнопками, без етого 
                                                                                          // кнопдобавляются но видна токо 1-а кнопка
                
            }
        });
        btnNewButton.setBounds(10, 100, 149, 23);
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.11.2012, 19:21
Ответы с готовыми решениями:

Создание массива при нажатии кнопки JButton
Добрых суток! Пишу программу, для получения от пользователя из 9 JText данных при нажатие кнопки, сборки их в массив и отправки другому...

Создание Dictionary при наследовании
Проблема такова, есть абстрактный класс и собственно 2 наследника. Есть list типа базового класса. Как с помощью linq создать dictionary...

Создание матрицы при наследовании класса с вектором
Пиши лабораторную, нужно написать два класса: 1. Поля вектор, его размер; методы ввод, вывод, поиск максимального 2. Наследует 1, поля...

2
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
26.11.2012, 08:37
Доступ к frame можно получить - все анонимные внутренние классы, являются не-статическими внутренними классами, и поэтому имеют доступ ко всем полям обрамляющего класса.
Обратиться к полю frame можно так:
Java
8
9
10
11
12
        addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                BtnUsers.this.frame.setVisible(true);
            }
        });
Также можно указать final у параметра frame, и тогда его можно будет использовать в анонимных классах
Java
5
6
7
8
9
10
11
12
13
    public BtnUsers(String title, final SpeakFrame frame) {
        setText(title);
        this.frame = frame;
        addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                frame.setVisible(true);
            }
        });
    }
1
0 / 0 / 0
Регистрация: 20.01.2012
Сообщений: 16
26.11.2012, 15:11  [ТС]
Очень огромное спасибо.
)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.11.2012, 15:11
Помогаю со студенческими работами здесь

Использование шаблонов при наследовании, ошибка при компиляции
При изучении списков написал шаблон протестировал, все работает. После написал класс наследник от шаблона List.h, компилятор выдает...

JButton в java. Увеличивать счетчик при нажатии
Здравствуйте, возник вопрос, как сделать форму JButton, при нажатии на которую будет увеличиваться счётчик? Например, было i = 1, нажали...

JButton, отключить изменение цвета при нажатии
Как сделать, чтобы при нажатии на кнопку - не менялся её цвет. setFocusPainted() не помогает p.s. Не судите строго - я новичок)

Открытие другого jframe при нажатии на jbutton
Хочу, чтобы при нажатии на jbutton "Test epta" открывалось 2-ое окно. В данный момент мне просто создается новое, пустое окно. Подскажите,...

Открытие другого окна jframe при нажатии на jbutton
вот первое окно хочу чтобы при нажатии на кнопку открывалась другое ,помогите пожалуйста) import java.awt.*; import java.io.File; ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru