Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2010, 12:18   #1
Alexcomeback
Пользователь
 
Регистрация: 03.04.2009
Сообщений: 59
По умолчанию Использование метода repaint() объекта класса JPanel

Возникла следующая проблема (возможно, из-за непонимания действия метода repaint()):
Имеется панель JPanel, по клику мыши на ней появляется элемент, состоящий из JLabel и JTextField (делаю подобие вершины графа), после создания двух таких элементов соединяю их линией (ребром графа) и всё было бы хорошо, вот только при создании очередного (например, третьего) элемента пропадает отрисованая линия. Подозрение пало на метод repaint(), который я использую после добавления лейбла и текстового поля на панель. Вопрос: как отображать добавленные элементы на панель, не используя при этом метод перерисовки?

Вообще, пробовал после каждого вызова репейнта делать примерно следующее:
Код:
public void repaintEdges() {
    for (Edge i : Edges) {
        i.paintEdge();
    }
То есть после перерисовки бегу по контейнеру, содержащему объекты класса Edge, и как бы заново отрисовываю линии методом
Код:
public void paintEdge() {
    Graphics g = Paint.panel.getGraphics();
    g.drawLine(xBegin, yBegin, xEnd, yEnd);
}
Однако проблема не решилась
Alexcomeback вне форума Ответить с цитированием
Старый 31.10.2010, 13:12   #2
Alexcomeback
Пользователь
 
Регистрация: 03.04.2009
Сообщений: 59
По умолчанию

В общем, проблему решил После добавления элемента на панель надо вызывать метод update() самой панели, в качестве аргумента - передать контекст панели (методом getGraphics()).
Alexcomeback вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача метода объекта. the_deer_one Общие вопросы C/C++ 8 09.09.2010 15:07
Передача метода класса в CreateThread mike_tihomirov Win Api 3 17.07.2010 14:13
Если в классе объявить объект другого класса,будет ли видно переменные первого класса из объекта второго? TwiX Общие вопросы Delphi 3 15.11.2009 00:54
Адрес метода класса? VintProg Общие вопросы Delphi 6 27.09.2009 13:10
COM-объекты в MS Script Control. Присвоение метода одного объекта другому объекту. Антон Ю.Б. Общие вопросы Delphi 1 04.04.2009 13:41