Для школьного проекта я пишу карточную игру BlackJack на JAVA.
После нескольких шагов в программе вся моя компьютерная система замедляется / заикается, а некоторые области внутри JFrame становятся черными.Похоже, что перерисовки не происходит.
Я дам вам несколько слов о программе, а не отправляю код.
Я сделал несколько расширений почти каждого компонента графического интерфейса, чтобы он выглядел более наглядно.и чувствую, что хочу.Почти каждый дочерний элемент JComponent, который я использую, переписывает свой paintComponent с пользовательскими фонами изображений и сглаживанием, где это применимо.
В моем (пользовательском) JFrame я загружаю расширенную версию JPanel.Эта панель содержит все компоненты графического интерфейса для этого экрана.Когда я хочу переключить экран (перейти в другую часть программы), я переключаюсь на другую расширенную версию JPanel.Я делаю это, удаляя все элементы из JFrame и добавляя новую панель.Эти различные панели реализуют ActionListeners и FocusListeners.
На данный момент мои мысли склоняются к проблеме обработки потоков.Моя теория на данный момент такова: когда создается панель для отображения в JFrame (каждая на разных этапах в программе), предыдущие созданные панели не «уничтожаются», и прослушиватели этих панелей остаются активными.
Мой вопрос к вам, люди, является ли эта теория обоснованной ... И в таком случае, есть ли способ "убить" эти панели или, по крайней мере, остановить прослушивание?
Если мойтеория не имеет смысла, что еще может быть причиной этих симптомов?Может ли это быть обширная перезапись методов paintComponent?
Любые идеи будут высоко оценены!
С уважением, Вилко