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

Добавление в окно кнопки из другой панели

29.07.2015, 17:22. Показов 629. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дело вот в чём. Есть два окна FrameBox - Отображает кнопки. FrameAddBut - Добавляет новую кнопку.

Так первым делом запускается FrameBox.
В FrameBox есть панель panelBut (В эту панель мы какраз таки и добавляем кнопки).
Дальше по нажатию запускается окно FrameAddBut.
Нажимаем на кнопку AddBut ииии тут вопрос как быть дальше как обратится к FrameBox не создавая экземпляр класса??

Статический метод я пробовал.
Проблема в том что метод revalidate(); не статический.

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
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
 
public class FrameBox extends JFrame {
    private int i;
    private JPanel panelBut = new JPanel();
    public void goGUI(){
        JButton button = new JButton("Открыть FrameAddBut");
 
        button.addActionListener(new ClicAdd());
 
        panelBut.add(button);
        panelBut.setLayout(new BoxLayout(panelBut, BoxLayout.Y_AXIS));
 
        add(panelBut);
 
        setSize(600, 400);
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        setResizable(false);
        setLocationRelativeTo(null);
        setVisible(true);
    }
 
    public static void main(String args[]) {
        FrameBox testAddElement = new FrameBox();
        testAddElement.goGUI();
    }
    public void AddBut(){
        panelBut.add(new JButton("Button " + i));
        i++;
        revalidate();
    }
 
    class ClicAdd implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("add");
            FrameAddBut panelTest = new FrameAddBut();
            panelTest.GUI();
        }
    }
}

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
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
 
public class FrameAddBut extends JFrame {
    public void GUI(){
 
        JButton button = new JButton("Add But");
        button.addActionListener(new ClicAdd());
        add(button);
 
        pack();
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        setResizable(false);
        setLocationRelativeTo(null);
        setVisible(true);
    }
 
    class ClicAdd implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            FrameBox panelBox = new FrameBox();
            panelBox.AddBut();
            dispose();
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.07.2015, 17:22
Ответы с готовыми решениями:

Добавление кнопки в всплывающие окно Windows Form
Всем привет.Я в С# не очень, и у меня возникла проблема.Как можно в всплывающие окно, например, кнопки добавить кнопку.Как я понял с помощь...

ПКМ по панели задач -> Панели -> Все кнопки неактивны
Добрый день! Я хочу добавить пользовательскую панель на Панель задач Windows 7. Делал это уже много раз, однако сегодня при попытке...

Информация от нажатия кнопок на одной панели должна выводится на другой панели
Добрый день и удачи Всем! Помогите пожалуйста. Я начинающий программист в Delphi7.Проблема заключается в следующем: На панели номер 1...

1
1 / 1 / 0
Регистрация: 11.02.2015
Сообщений: 24
31.07.2015, 16:22  [ТС]
Нашел решение!!!

Просто в FrameAddBut в конструктор передаём ссылку FrameBox.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.07.2015, 16:22
Помогаю со студенческими работами здесь

Изменение цвета панели на другой панели
Доброго времени суток, нужна помощь, ситуация следующая: Имеется форма(Допустим форма1), на форме есть панель(Допустим панель1), на...

Добавление текстбоксов по нажатию клавиши и удаление по нажатию другой кнопки
Всем доброго времени суток. Хотел попросить помощи в написании следующего кода. Кое что набросал, но не работает при удалении...

Добавление записи в Listview(1 форма) через Диалоговое окно(3 форма) другой формы (2 форма)
Всем доброго дня и с наступающими праздниками! Знаю, тема 7 частых вопросов по WinForms уже не раз обсуждалась, и была прочитана, но или...

Как закрыть окно формы и открыть окно другой
Код такой. Нужно по нажатии кнопки закрыть форму 1 и открыть форму 2... но, что-то так не работает private void button2_Click(object...

Нужно изменить доступность кнопки в одной форме нажатием кнопки в другой
Есть две формы. В первой есть кнопка "which" с enabled = false, во второй есть кнопка, нажатие которой должно делать which активной. Как...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
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